Rumah > Java > javaTutorial > Apakah dua kaedah penggunaan panas springboot?

Apakah dua kaedah penggunaan panas springboot?

王林
Lepaskan: 2023-06-03 11:51:27
ke hadapan
755 orang telah melayarinya

Perbezaan antara springboot dan springmvc

spring boot telah membenamkan bekas tomcat, Jetty dan Undertow, yang boleh dijalankan secara langsung tanpa sebarang penggunaan lanjut

spring boot Konfigurasi secara automatik, mengurangkan sejumlah besar konfigurasi fail xml; mengurangkan kerumitan pembinaan projek

Spring MVC ialah rangka kerja MVC berdasarkan Servlet, kerana konfigurasi Spring adalah sangat kompleks, pelbagai XML, JavaConfig dan hin agak menyusahkan untuk dikendalikan. Oleh itu, untuk memudahkan penggunaan pembangun, Spring boot telah dilancarkan secara kreatif daripada konfigurasi, yang memudahkan proses konfigurasi spring.

Spring ialah "enjin";

Spring MVC ialah rangka kerja MVC berdasarkan Spring

Spring Boot ialah satu set pakej penyepaduan pembangunan pantas berdasarkan pendaftaran bersyarat Spring4; .

Dua cara penggunaan springboot hot

SpringBoot devtools hot deployment hanya tersedia selepas SpringBoot 1.3

①: spring-boot-devtools ②: SpringBoot Dimuatkan

Kaedah 1:

Tambah kebergantungan dalam fail pom projek:

 <!--热部署jar-->
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-devtools</artifactId>
 </dependency>
Salin selepas log masuk

Kemudian: gunakan shift+ctrl+alt+"/" (kunci pintasan dalam IDEA) Pilih " Registry" dan kemudian semak compiler.automake.allow.when.app.running

Kaedah 2:

Tambah kod berikut pada projek

 <build>
 <plugins>
  <plugin>
  <!-- springBoot编译插件-->
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
  <dependencies>
   <!-- spring热部署 -->
   <!-- 该依赖在此处下载不下来,可以放置在build标签外部下载完成后再粘贴进plugin中 -->
   <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>springloaded</artifactId>
   <version>1.2.6.RELEASE</version>
   </dependency>
  </dependencies>
  </plugin>
 </plugins>
 </build>
Salin selepas log masuk

Diperlukan selepas menambah Gunakan Perintah mvn untuk dijalankan:

Mula-mula cari konfigurasi Edit dalam IDEA, dan kemudian lakukan perkara berikut: (Klik "+" di sudut kiri atas, kemudian pilih maven, panel kanan akan muncul, masukkan merah kawasan bergaris bawah seperti yang ditunjukkan Perintah yang ditunjukkan, anda boleh menamakan arahan (dinamakan di sini sebagai MvnSpringBootRun))

Klik simpan dan ia akan muncul dalam bahagian projek berjalan IDEA Klik anak panah hijau untuk menjalankan

fail konfigurasi springboot

spring boot menggunakan fail konfigurasi global: terutamanya dua jenis

aplikasi.properties: Contoh: server.port =9998

aplikasi.yml(YAML): Contoh: pelayan:

Port:8080

Fungsi fail konfigurasi adalah terutamanya untuk mengubah suai lalai asas bagi Konfigurasi but spring

anotasi teras But Spring

Anotasi pada kelas permulaan ialah @SpringBootApplication, yang juga merupakan anotasi teras Spring Boot. Gabungan utama termasuk 3 anotasi berikut:

@SpringBootConfiguration: menggabungkan anotasi @Configuration untuk melaksanakan fungsi fail konfigurasi.

@EnableAutoConfiguration: Hidupkan fungsi konfigurasi automatik, atau matikan pilihan konfigurasi automatik tertentu, seperti mematikan fungsi konfigurasi automatik sumber data: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }).

@ComponentScan: Imbasan komponen spring.

Prinsip pelaksanaan pemula but spring

Menggunakan pemula untuk merealisasikan konfigurasi automatik hanya memerlukan dua syarat - kebergantungan maven dan fail konfigurasi pemula pengenalan melaksanakan proses konfigurasi automatik.
Memperkenalkan maven pada asasnya mengimport pakej jar Apabila spring-boot bermula, ia akan mencari fail sumber/META-INF/spring.factories dalam pakej balang pemula Menurut konfigurasi dalam fail spring.factories akan menemui kelas yang perlu dikonfigurasikan secara automatik

Perbezaan antara Spring Boot dan Spring MVC

  1. Spring Boot ialah penyepaduan bagi. Spring dan Spring MVC, manakala Spring MVC hanyalah modul Spring , rangka kerja lapisan Web yang ringan

  2. Spring Boot boleh mencapai konfigurasi hampir sifar, semua fungsi dibangunkan menggunakan anotasi dan idea 'konvensyen atas konfigurasi' digunakan untuk memudahkan pembangunan projek

  3. Kesukaran, dan Spring MVC perlu bergantung pada konfigurasi xml untuk pembangunan

  4. Spring Boot dilengkapi dengan tomcat terbina dalam, jadi selepas membungkus ke dalam pakej balang Anda boleh menjalankannya terus, atau anda boleh memilih untuk menggunakan Tomcat luaran

  5. Spring Boot juga mewarisi banyak ketiga- konfigurasi perpustakaan pihak, seperti JDBC, Mongo, Redis, dll. Menggunakan perpustakaan pihak ketiga ini, konfigurasi hampir Zero adalah mungkin

Apakah prinsip pendaftaran perkhidmatan springcloud dan penemuan

Eureka mengandungi dua komponen: Eureka Server dan Eureka Client

Eureka Server menyediakan perkhidmatan pendaftaran perkhidmatan

Selepas setiap nod dimulakan, ia akan didaftarkan dalam EurekaServer, supaya pendaftaran perkhidmatan dalam EurekaServer akan menyimpan semua maklumat nod perkhidmatan yang tersedia, maklumat nod perkhidmatan boleh dilihat secara intuitif dalam antara muka

EurekaClient ialah klien Java yang digunakan untuk memudahkan interaksi dengan Eureka Pelayan. Pelanggan juga mempunyai algoritma beban pengimbang beban bulat Robin terbina dalam. Selepas permohonan bermula, degupan jantung akan dihantar ke Pelayan Eureka (tempoh lalai ialah 30 saat). Jika Pelayan Eureka tidak menerima degupan jantung nod dalam berbilang kitaran degupan jantung, EurekaServer akan mengalih keluar nod perkhidmatan daripada pendaftaran perkhidmatan (90 saat secara lalai)

Tiga peranan utama Eureka :

  • Pelayan Eureka menyediakan pendaftaran dan penemuan perkhidmatan

  • Pembekal Perkhidmatan Pembekal perkhidmatan mendaftarkan perkhidmatannya sendiri dengan Eureka, supaya pengguna perkhidmatan boleh Cari

  • Pengguna Perkhidmatan Pengguna perkhidmatan mendapatkan senarai perkhidmatan berdaftar daripada Eureka supaya ia boleh menggunakan perkhidmatan

Sebagai pusat pendaftaran perkhidmatan, kelebihan Eureka dan Zookeeper ialah:

Teori CAP yang terkenal menunjukkan bahawa sistem teragih tidak boleh pada masa yang sama memenuhi C (konsistensi), A (Ketersediaan) dan P (Toleransi Partition). Oleh kerana toleransi kerosakan partition P mesti dijamin dalam sistem teragih, kami hanya boleh membuat pertukaran antara A dan C.

Oleh itu

  • Zookeeper menjamin CP,

  • Eureka menjamin AP

Perbezaan antara # dan $ dalam mybatis

# adalah bersamaan dengan menambah petikan berganda pada data, $ bersamaan dengan memaparkan data secara terus

  • Data yang masuk akan dianggap sebagai rentetan dan disertakan dalam petikan berganda. Contohnya: perintah mengikut #user_id#, jika nilai yang dihantar adalah 111, maka nilai apabila dihuraikan ke dalam sql adalah tertib mengikut "111". 🎜>

  • $ memaparkan data masuk secara langsung dan menjananya dalam sql. Contohnya: perintah mengikut $user_id$, jika nilai masuk ialah 111, maka nilai apabila dihuraikan ke dalam sql adalah tertib mengikut user_id Jika nilai masuk ialah id, sql yang dihuraikan adalah susunan mengikut id. 

  • Kaedah 3# boleh menghalang suntikan sql ke tahap yang besar. ​

  • Kaedah $ tidak dapat menghalang suntikan Sql.

  • Kaedah $ biasanya digunakan untuk menghantar objek pangkalan data, seperti nama jadual

  • Secara amnya, jangan gunakan $ jika anda boleh. gunakan #.

Apabila menggunakan susunan mengikut parameter dinamik semasa mengisih MyBatis, anda perlu memberi perhatian untuk menggunakan $ dan bukannya #


penggantian rentetan


Secara lalai, menggunakan sintaks borang #{} menyebabkan MyBatis mencipta sifat pernyataan yang disediakan dan menetapkan nilai selamat (seperti ?) terhadapnya. Ini selamat, cepat dan lebih disukai, kadangkala anda hanya mahu memasukkan rentetan yang tidak berubah terus ke dalam pernyataan SQL. Contohnya, seperti ORDER BY, anda boleh menggunakannya seperti ini:

ORDER BY ${columnName}

Di sini MyBatis tidak akan mengubah suai atau melepaskan rentetan.

Cara Redis menghentikan data

  1. lru meruap: Daripada set data dengan set masa tamat tempoh (server.db[i].tamat tempoh) Pilih data yang paling kurang digunakan baru-baru ini dan hapuskannya

  2. volatile-ttl: Pilih data yang akan tamat tempoh daripada set data (server.db[i].luput) dengan masa tamat tempoh ditetapkan

  3. volatile-random: Pilih data secara rawak daripada set data (server.db[i].expires) dengan masa tamat tempoh ditetapkan untuk menghapuskan

  4. allkeys-lru: Pilih data yang paling kurang digunakan baru-baru ini daripada set data (server.db[i].dict) untuk menghapuskan

  5. allkeys-random: Daripada set data (server.db [i] ].dict) pilih data secara rawak untuk menghapuskan

  6. tiada envivtion (pengusiran): melarang pengusiran data

Mekanisme LRU:

Redis menyimpan pelayan kaunter lru.lrulock, yang akan dikemas kini dengan kerap (program pemasa redis severCorn() akan menetapkan nilai lru yang sepadan setiap kali objek itu diakses Setiap kali, redis akan mengemas kini redisObject.lru.


Mekanisme penyingkiran LRU: pilih secara rawak beberapa pasangan nilai kunci dalam set data dan alih keluar pasangan nilai kunci dengan lru terbesar antara mereka untuk penyingkiran. Oleh itu, redis tidak menjamin bahawa data yang dihapuskan adalah yang paling kurang digunakan baru-baru ini, tetapi merupakan pasangan nilai kunci yang dipilih secara rawak.

Mekanisme TTL:

Struktur set data redis menyimpan jadual tamat tempoh pasangan nilai kunci, iaitu redisDb.expires.


Mekanisme penghapusan TTL: Pilih secara rawak beberapa pasangan nilai kunci dalam set data dan alih keluar pasangan nilai kunci yang paling hampir dengan masa tamat tempoh. Oleh itu, redis tidak menjamin bahawa data yang dihapuskan adalah yang paling hampir dengan masa tamat tempoh, tetapi pasangan nilai kunci yang dipilih secara rawak.

Apabila redis melaksanakan arahan pada setiap klien perkhidmatan, ia akan mengesan sama ada memori yang digunakan adalah berlebihan

Atas ialah kandungan terperinci Apakah dua kaedah penggunaan panas springboot?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan