Senibina Spring Boot adalah perkara biasa sehingga jika anda tidak menguasainya, kadangkala anda malu untuk berkata bahawa anda terlibat dalam Java Work. Tetapi ia adalah kebakaran, dan terdapat beberapa masalah kecil yang perlu kita perhatikan.
Jika ia adalah projek tunggal dan tiada keperluan dari segi kelajuan permulaan, sila abaikan.
Mari kita ke topik, dalam keadaan apakah permulaan projek but spring akan menjadi perlahan?
Konfigurasi perkakasan mesin projek permulaan tidak boleh ditangguhkan, jika tidak anda akan mengatakan bahawa projek Permulaan adalah perlahan, dan projek itu masih merasakan bahawa mesin itu tidak baik...
Sebagai contoh, rangkaian, saiz memori, bilangan teras CPU, dll. Ia tidak memerlukan untuk menjadi terlalu tinggi, sekurang-kurangnya ia sepatutnya cukup
Buang semua jenis Faktor buatan seperti masa sambungan yang lama dan permulaan komponen lain yang perlahan membawa kepada menunggu...
Terlalu banyak konfigurasi tidak berguna digunakan dalam projek. Sebagai contoh, dalam web yang paling mudah, anda juga telah menambah pelbagai konfigurasi maven lain dan mengkonfigurasinya ke dalam projek (ini hanyalah contoh yang dibesar-besarkan, konfigurasi ini tidak diperlukan), dan kemudian projek itu sendiri tidak memahaminya Sejak anda mengkonfigurasinya , kemudian muatkannya.
Satu mengambil masa 0.1 saat, 10 mengambil masa 1 saat, 100 mengambil masa 10 saat...dan seterusnya Ini adalah perkara yang paling mudah untuk difahami.
Konfigurasi automatik but spring. Walaupun konfigurasi automatik adalah kemuncak Spring Boot, ia juga merupakan kelemahan yang membawa kepada masa permulaan yang perlahan.
Tidak mengapa, biasanya sesuatu yang mudah digunakan dan mempunyai fungsi penuh akan sentiasa mempunyai kelemahan di sesetengah tempat.
Seperti yang dinyatakan di atas, terdapat banyak konfigurasi yang tidak berguna Apa yang saya ingin katakan di sini ialah but spring memasang terlalu banyak perkara dengan sendirinya.
Anda boleh melihat bahawa dalam pakej balang spring boot yang berkaitan, fail spring.factories disimpan Apabila anda melihat ke dalam, anda dapat melihat bahawa kebanyakannya telah menulis banyak kelas, yang melaksanakannya pemasangan automatik but spring Salah satu teras.
Tetapi jika anda melihat dengan teliti, anda akan mendapati bahawa sebenarnya terdapat banyak kategori yang mungkin anda tidak gunakan langsung.
Tetapi apa yang boleh anda lakukan sama ada anda menggunakannya atau tidak, sekurang-kurangnya ia akan menyemaknya untuk anda.
Projek ini tidak cukup diselaraskan. Konsep perkhidmatan mikro agak popular sekarang, saya rasa makna terasnya ialah kesederhanaan dan kesederhanaan, dan kebanyakan tempat yang perlu menekankan kelajuan permulaan kebanyakannya dalam projek perkhidmatan mikro.
Dalam projek perkhidmatan mikro, yang terbaik adalah untuk memulakannya dalam masa 10 saat. Tetapi kebanyakan mereka tidak dapat melakukannya kerana projek-projek tidak dibahagikan kepada butiran yang cukup.
Sama ada satu antara muka lebih cepat untuk dimulakan, atau 10, atau lebih, jawapannya adalah jelas. Banyak projek adalah besar dan komprehensif Apa yang dipanggil besar dan komprehensif bermakna terdapat banyak fungsi, konfigurasi lengkap, pelbagai konfigurasi boleh dikembangkan, dll. Ia mungkin tidak menyeluruh, tetapi apakah maksudnya. Tidak kira sama ada ia berguna atau tidak Sekurang-kurangnya akan ada lebih banyak fail kelas yang perlu disusun dan dimuatkan. Anda berkata anda mahu projek sebegitu cepat dimulakan.
Periksa sama ada terdapat terlalu banyak kebergantungan tidak berguna dalam maven
Ia lebih rumit, gunakan spring-boot -maven Mulakan nyahpepijat pemalam, semak konfigurasi yang digunakan dalam projek dan konfigurasi yang tidak berguna, kemudian nyatakan dalam kelas permulaan bahawa hanya kelas yang digunakan akan dimulakan, padamkan anotasi @SpringBootApplication dan isikan secara manual @Configuration dan @Import anotasi , dan tambahkan kelas yang dikonfigurasikan tersebut dalam anotasi @Import.
Ganti beberapa kebergantungan dengan konfigurasi yang lebih pantas. Sebagai contoh, anda menggunakan kumpulan sambungan pangkalan data, yang mempunyai fungsi penuh dan banyak konfigurasi, tetapi lebih perlahan Namun, sebenarnya, kumpulan sambungan B juga boleh memenuhi keperluan projek, tetapi mempunyai fungsi yang agak sedikit, jadi terdapat kurang konfigurasi dan lebih cepat. permulaan. Adakah anda perlu Anda harus memilih satu antara A dan B.
Pisah projek yang lebih diperkemas untuk dijalankan secara bebas. Besar dan komprehensif bermakna lebih tetapi tidak halus, ramping dan ringkas bermakna kurang tetapi cekap.
Sempitkan skop kelas pengimbasan @ComponentScan dan @SpringBootApplication
Matikan Spring Boot Pemantauan JMX. Tetapkan spring.jmx.enabled=false
3 Tetapkan parameter JVM -noverify dan jangan sahkan kelas
4 🎜>
5 Gunakan Spring Boot's global lazy loading6 Cuba untuk tidak menggunakan anotasi untuk aspek AOP, yang akan menyebabkan semua kaedah diimbas semasa permulaan7 beberapa fungsi pemantauan titik akhir8 Kecualikan kebergantungan balang yang tidak perlu bagi projek9 Apabila kesombongan mengimbas antara muka, tentukan untuk mengimbas hanya kelas di bawah laluan tertentu10. .Atas ialah kandungan terperinci Apakah sebab mengapa SpringBoot bermula dengan perlahan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!