Konsep Loader Kelas di Java
Loader kelas
di Java adalah sebahagian daripada persekitaran Java Runtime, dan bertanggungjawab untuk memuatkan kelas dinamik ke mesin maya Java (JVM). Aplikasi Java menggunakan loader kelas untuk memuatkan fail kelas atas permintaan, dan bukannya memuat semua kelas semasa permulaan.
Ciri -ciri utama:
Loading Dynamic
: Kelas dimuatkan atas permintaan apabila rujukan.
Model Suruhanjaya - : Mengikuti model Suruhanjaya Bapa, permintaan kelas pemuatan diserahkan kepada loader induk sebelum mencuba pemuatan tempatan.
Isolasi
: Ia membantu mengekalkan pengasingan kelas, yang sangat berguna dalam sistem kompleks seperti pelayan aplikasi. -
jenis loader kelas:
-
Loader Kelas Panduan :
Muatkan kelas Java teras dari ,
dan lain -lain.
Sebahagian daripada JVM dilaksanakan secara asli. -
loader extension - :
java.lang
java.util
Muatkan kelas dari lanjutan Java ( ). -
Loader Kelas Aplikasi/Sistem - :
Muatkan kelas dari permohonan aplikasi (
pembolehubah persekitaran). -
jre/lib/ext
loader kelas disesuaikan : -
Loader Kelas Pengguna -Digunakan untuk mengembangkan atau mengubah suai tingkah laku pemuatan lalai.
-
CLASSPATH
kaedah loader kelas:
- : Cari kelas dengan nama yang ditentukan.
: Gunakan model komisen untuk memuatkan kelas.
- : Arahan byte ditukar kepada contoh kelas.
Struktur hierarki kelas loader:
loader kelas pada musim bunga -
findClass(String name)
Dalam kerangka musim bunga
, konsep loader kelas sangat penting, kerana aplikasi musim bunga secara dinamik memuat kelas dan menguruskan sumber semasa runtime. Mekanisme Loader Kelas Spring dan Java mengintegrasikan untuk meningkatkan kelas dan beban sumber. -
loadClass(String name)
Penggunaan pada musim bunga:
-
defineClass(byte[] b)
kacang dan konfigurasi yang dimuatkan :
Spring menggunakan loader kelas untuk memuatkan kacang yang ditakrifkan dalam fail konfigurasi atau menggunakan kelas anotasi
.
<code>引导类加载器
↑
扩展类加载器
↑
应用程序类加载器
↑
自定义类加载器(如有)</code>
Salin selepas log masuk
Salin selepas log masuk
sumber beban
:
Spring menyediakan abstraksi
untuk memuatkan fail, URL atau sumber laluan kelas. Di sebalik tempat kejadian, ia menggunakan loader kelas untuk menganalisis sumber.
-
Contoh:
<code>引导类加载器
↑
扩展类加载器
↑
应用程序类加载器
↑
自定义类加载器(如有)</code>
Salin selepas log masuk
Salin selepas log masuk
- pemuatan panas :
Spring Boot Devtools
- alat seperti pemuat kelas adat secara dinamik memuat semula kelas semasa proses pembangunan.
adegan loader kelas yang disesuaikan : -
Apabila aplikasi musim bunga digunakan dalam bekas atau mikro -perkhidmatan, pemuat kelas yang disesuaikan biasanya dilaksanakan untuk mengasingkan dependensi (contohnya, dalam Tomcat atau Kubernetes).
-
Menghadapi Pengaturcaraan Berorientasi Aspek (AOP)
:
- Spring's AOP menggunakan kelas proksi, yang biasanya dimuat secara dinamik melalui pemuat kelas.
-
abstraksi loader kelas spring:
Spring's loader kelas yang terkandung untuk memudahkan pemuatan sumber.
Loader kelas biasanya digunakan untuk mengakses benang tertentu, yang membolehkan musim bunga diintegrasikan dengan lancar dengan perpustakaan ketiga. -
DefaultResourceLoader
Contoh biasa: -
ContextClassLoader
Gunakan loader kelas untuk memuatkan kacang dari fail:
perbezaan kunci java dan musim bunga:
<code class="language-java">Resource resource = new ClassPathResource("application.properties");</code>
Salin selepas log masuk
Atas ialah kandungan terperinci Spring-: Classloader-in-Java-VS-Spring. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!