Artikel ini terutama mengeksplorasi konten terkait tentang ruang lingkup dan siklus hidup kacang, sebagai berikut.
Lingkup kacang
Spring 3 mendefinisikan lima lingkup untuk kacang, yaitu singleton (singleton), prototipe (prototipe), permintaan, sesi dan sesi global. Lima lingkup dijelaskan sebagai berikut:
1.Singleton: Singleton Mode, hanya akan ada satu instance bean bersama dalam wadah IOC musim semi, tidak peduli berapa banyak kacang yang merujuknya, mereka selalu menunjuk ke objek yang sama. Singleton Scope adalah ruang lingkup default di musim semi. Anda juga dapat mendefinisikan kacang sebagai mode singleton dan mengonfigurasinya sebagai:
<bean id="userDao" scope="singleton"/>
2.Prototype: Mode prototipe. Setiap kali prototipe kacang yang ditentukan diperoleh melalui wadah pegas, wadah akan membuat instance kacang baru. Setiap instance kacang memiliki atribut dan statusnya sendiri, dan Singleton hanya memiliki satu objek dalam konteks global. Sebagai aturan praktis, gunakan ruang lingkup prototipe untuk kacang stateful, dan ruang lingkup singleton untuk kacang tanpa kewarganegaraan.
3. Perlindungan: Dalam permintaan HTTP, wadah akan mengembalikan contoh kacang yang sama. Namun, kacang baru akan dihasilkan untuk permintaan HTTP yang berbeda, dan kacang hanya berlaku dalam permintaan HTTP saat ini.
<bean id="loginAction" scope="request"/> , untuk setiap permintaan http, wadah musim semi membuat contoh baru sesuai dengan definisi kacang, dan instance hanya berlaku dalam permintaan HTTP saat ini, dan permintaan lain tidak dapat melihat perubahan dalam status dalam permintaan ini. Ketika permintaan HTTP saat ini berakhir, instance kacang juga akan dihancurkan.
4.Sesi: Dalam sesi HTTP, wadah akan mengembalikan contoh yang sama dari kacang. Untuk permintaan sesi yang berbeda, instance baru akan dibuat, dan instance Bean hanya valid dalam sesi saat ini.
<bean id="userPreference" scope="session"/> , sama dengan permintaan http, membuat instance baru setiap permintaan sesi, dan tidak ada atribut yang dibagikan di antara contoh yang berbeda, dan instance hanya valid dalam permintaan sesi sendiri. Jika permintaan berakhir, instance akan dihancurkan.
5. Sesi Global: Dalam sesi HTTP global, wadah akan mengembalikan instance yang sama dari kacang, yang hanya valid saat menggunakan konteks portlet.
Siklus hidup kacang
Setelah pengenalan ruang lingkup kacang seperti yang disebutkan di atas, siklus hidup kacang akan dijelaskan berdasarkan ruang lingkup kacang.
Wadah musim semi dapat mengelola siklus hidup kacang di bawah lingkup singleton. Dalam ruang lingkup ini, musim semi dapat mengetahui persis kapan kacang dibuat, ketika inisialisasi selesai, dan kapan dihancurkan. Untuk kacang prototipe, Spring hanya bertanggung jawab untuk membuatnya. Ketika wadah membuat contoh kacang, contoh kacang diserahkan ke manajemen kode klien. Wadah pegas tidak akan lagi melacak siklus hidupnya dan tidak akan mengelola siklus hidup kacang -kacangan yang dikonfigurasi sebagai lingkup prototipe. Eksekusi siklus hidup kacang di musim semi adalah proses yang sangat kompleks, dan pembaca dapat menggunakan metode yang disediakan oleh Spring untuk menyesuaikan proses pembuatan kacang. Wadah musim semi melakukan banyak pekerjaan sebelum memastikan bahwa instance kacang dapat digunakan:
Meringkaskan
Di atas adalah semua tentang artikel ini yang membahas ruang lingkup dan siklus hidup kacang di musim semi. Saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke topik terkait lainnya di situs ini. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!