Rumah >Java >javaTutorial >Analisis terperinci Java tentang skop Bean
Artikel ini membawakan anda pengetahuan yang berkaitan tentang java The Spring framework ialah bekas IoC yang menguruskan Beans, jadi Beans secara semula jadi adalah sumber yang penting dalam Spring. Ada berapa jenis? Mari kita lihat bersama-sama, saya harap ia akan membantu semua orang.
Pembelajaran yang disyorkan: "tutorial video java"
Rangka kerja Spring ialah bekas IoC yang menguruskan kacang, jadi kacang itu secara semula jadi Spring Sumber penting dalam Bean, apakah maksud skop Bean? Ada berapa jenis? Mari kita lihat seterusnya.
PS: Kelas awam di Java boleh dipanggil Beans atau Java Beans.
Skop Kacang merujuk kepada mod tingkah laku tertentu Kacang dalam keseluruhan rangka Kerja Spring. Sebagai contoh, skop tunggal bermakna terdapat hanya satu salinan Bean dalam keseluruhan Spring, dan ia dikongsi secara global Apabila seseorang mengubah suai nilai, perkara yang dibaca oleh orang lain ialah nilai yang diubah suai.
Sebagai contoh, kami mentakrifkan pengguna objek Bean tunggal dalam Spring (skop lalai ialah tunggal Kod pelaksanaan khusus adalah seperti berikut:
@Component public class UserBean { @Bean public User user() { User user = new User(); user.setId(1); user.setName("Java"); // 此行为重点:用户名称为 Java return user; } }
Kemudian, dalam Objek pengguna ialah). digunakan dan diubah suai dalam kelas A. Kod pelaksanaan khusus adalah seperti berikut:
@Controller public class AController { @Autowired private User user; public User getUser() { User user = user; user.setName("MySQL"); // 此行为重点:将 user 名称修改了 return user; } }
Akhir sekali, objek pengguna juga digunakan dalam kelas B. Kod pelaksanaan khusus adalah seperti berikut:
@Controller public class BController { @Autowired private User user; public User getUser() { User user = user; return user; } }
Pada masa ini, apabila kita mengakses kaedah getUser dalam objek B, kita akan mendapati bahawa nama pengguna pada masa ini adalah "MySQL" diubah suai dalam kelas A, bukannya "Java" asal Ini bermakna objek Bean pengguna lalai kepada skop tunggal. Jika objek tunggal ini diubah suai di mana-mana, kelas lain akan mendapat nilai yang diubah suai apabila dipanggil semula.
Dalam Spring, terdapat 5 skop biasa Bean berikut:
Perihalan rasmi: (Lalai) Skop definisi kacang tunggal kepada contoh objek tunggal untuk setiap bekas Spring IoC.Penerangan: Skop ini Ada hanyalah satu contoh Bean di bawah dalam bekas IoC: Bean yang diperolehi (iaitu, diperoleh melalui applicationContext.getBean dan kaedah lain) dan Bean yang dipasang (iaitu, disuntik melalui @Autowired) kedua-duanya adalah objek yang sama.
menggunakan skop ini. Stateless bermakna keadaan harta objek Bean tidak perlu dikemas kini.
Nota:
Spring memilih skop ini secara lalai.Prototaip 2.2
Penerangan rasmi: Skop definisi kacang tunggal kepada sebarang bilangan kejadian objek.Penerangan: Setiap kali Kacang di bawah skop ini ditakrifkan Baharu contoh akan dibuat untuk setiap permintaan: mendapatkan kacang (iaitu, mendapatkannya melalui kaedah seperti applicationContext.getBean) dan memasang kacang (iaitu, menyuntiknya melalui @Autowired) adalah kedua-dua contoh objek baharu.
menggunakan skop ini.
Permintaan 2.3
Penerangan rasmi: Skop definisi kacang tunggal kepada kitaran hayat permintaan HTTP tunggal Iaitu, setiap permintaan HTTP mempunyai contoh kacang yang dibuat di belakang a takrifan kacang tunggal. Hanya sah dalam konteks Konteks Aplikasi Spring yang sedar web.Penerangan: Setiap permintaan Http akan mencipta tika Bean baharu, serupa dengan prototaip.
Nota: Terhad untuk digunakan dalam rangka kerja Spring MVC.
Sesi 2.4
Penerangan rasmi: Skop definisi kacang tunggal kepada kitaran hayat Sesi HTTP Hanya sah dalam konteks Konteks Aplikasi Spring yang sedar web.
Penerangan. : Dalam Sesi Http, tentukan contoh Bean.
Nota: Terhad untuk digunakan dalam rangka kerja Spring MVC.
Aplikasi 2.5
Penerangan rasmi: Skop definisi kacang tunggal kepada kitaran hayat ServletContext Hanya sah dalam konteks Spring ApplicationContext yang sedar web.
Penerangan: Dalam Konteks Servlet Http, tentukan contoh Bean.
Nota: Terhad untuk digunakan dalam rangka kerja Spring MVC.
3. Tetapan skop
Kita boleh menetapkan skop Bean melalui anotasi @Scope Terdapat dua cara untuk menetapkannya:
Tetapkan skop secara langsung Nilai khusus. , seperti: @Scope("prototype");
Kod tetapan khusus adalah seperti berikut:
Skop Kacang merujuk kepada corak tingkah laku tertentu Kacang dalam keseluruhan rangka kerja Spring. Terdapat 5 skop biasa Bean: singleton (skop kes tunggal), prototaip (skop prototaip), permintaan (skop permintaan), sesi (skop permintaan), aplikasi (skop global), perhatikan tiga fungsi terakhir Domain hanya tersedia dalam rangka kerja MVC Spring.
Pembelajaran yang disyorkan: "tutorial video java"
Atas ialah kandungan terperinci Analisis terperinci Java tentang skop Bean. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!