Rumah > Java > javaTutorial > Spring-: Classloader-in-Java-VS-Spring

Spring-: Classloader-in-Java-VS-Spring

Barbara Streisand
Lepaskan: 2025-01-29 16:12:11
asal
753 orang telah melayarinya

spring-: classloader-in-java-vs-spring

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
  1. : Mengikuti model Suruhanjaya Bapa, permintaan kelas pemuatan diserahkan kepada loader induk sebelum mencuba pemuatan tempatan. Isolasi
  2. : Ia membantu mengekalkan pengasingan kelas, yang sangat berguna dalam sistem kompleks seperti pelayan aplikasi.
  3. jenis loader kelas:
  4. 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 (
    • ).
  1. Loader Kelas Aplikasi/Sistem
  2. : Muatkan kelas dari permohonan aplikasi (
      pembolehubah persekitaran).
    • jre/lib/ext
    loader kelas disesuaikan
  3. :
  4. Loader Kelas Pengguna -Digunakan untuk mengembangkan atau mengubah suai tingkah laku pemuatan lalai.
    • CLASSPATH
    • kaedah loader kelas:
  5. : Cari kelas dengan nama yang ditentukan. : Gunakan model komisen untuk memuatkan kelas.
    • : Arahan byte ditukar kepada contoh kelas.
  6. 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.

  1. Contoh:
    <code>引导类加载器
           ↑
    扩展类加载器
           ↑
    应用程序类加载器
           ↑
    自定义类加载器(如有)</code>
    Salin selepas log masuk
    Salin selepas log masuk
    1. pemuatan panas :

        Spring Boot Devtools

      • alat seperti pemuat kelas adat secara dinamik memuat semula kelas semasa proses pembangunan.
      adegan loader kelas yang disesuaikan
    2. :
    3. 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)
      :
    4. 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!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan