Di masa lalu, Java Frameworks pada dasarnya menggunakan XML sebagai file konfigurasi, tetapi sekarang Java Frameworks juga mendukung "nol konfigurasi" berdasarkan anotasi alih -alih file konfigurasi XML. Struts2, Hibernate, dan Spring semuanya mulai menggunakan anotasi alih -alih file konfigurasi XML; dan Spring3.x menyediakan tiga opsi, yaitu: konfigurasi berbasis XML, konfigurasi berbasis anotasi dan konfigurasi berbasis Java.
Berikut ini adalah tiga metode konfigurasi; Pertama -tama tentukan orang Javabe.
Paket com.chinalife.dao kelas publik Loginuserdao {... // Digunakan untuk mengatur metode inisialisasi public void myInit () {} // digunakan untuk mengatur metode penghancuran public void myDestroy () {}}1. Konfigurasi berbasis XML
<bean id = "loginuserdao" class = "com.chinalife.dao.impl.loginuserdaoMPL" malas-init = "true" init-metod = "myinit" dashing-metod = "mydestroy" scope = "prototipe"> ... </bean>
Dalam konfigurasi XML, kacang didefinisikan melalui <Bean> </sean>, dan nama kacang didefinisikan melalui atribut ID atau nama. Jika atribut ID dan nama tidak ditentukan, Spring akan secara otomatis menggunakan nama kelas yang sepenuhnya memenuhi syarat sebagai nama kacang. Suntikkan nilai ke dalam kacang melalui atribut dinamis dari elemen anak <Propital> atau namespace. Anda juga dapat menentukan nama metode kelas implementasi kacang melalui init-metode dan sifat-sifat-metode-metode <bean> untuk mengatur metode proses kehidupan (tentukan paling banyak metode inisialisasi dan metode hancurkan). Tentukan ruang lingkup kacang melalui ruang lingkup <Bean>. Saya telah mendengar tentang atribut malas-init dari <Bean> menentukan apakah akan menunda inisialisasi.
Ketika kelas implementasi kacang berasal dari perpustakaan kelas ketiga, seperti DataSource, HibernateTemplate, dll., Ia tidak dapat memberi anotasi informasi di kelas, dan hanya dapat dikonfigurasi melalui XML; dan konfigurasi ruang nama, seperti AOP, konteks, dll., Hanya dapat menggunakan konfigurasi berbasis XML.
2. Konfigurasi berbasis anotasi
@Scope("prototype") @Lazy(true) @Component("loginUserDao") public class LoginUserDao { ... // Used to set the initialization method @PostConstruct public void myInit() { } // Used to set the destruction method @PreDestroy public void myDestroy() { } }Di kelas implementasi kacang, beberapa anotasi digunakan untuk memberi anotasi kelas kacang:
・ @Component: Anotasi kelas Springbean normal (nama kacang dapat ditentukan, dan standarnya adalah nama kelas yang dimulai dengan huruf kecil saat tidak ditentukan)
・ @Controller: Anotasi kelas pengontrol
・ @Service: Anotasi kelas logika bisnis
・ @Repository: Annotate A DAO Class
Dengan memberi label @Autowired berdasarkan jenis injeksi pencocokan pada variabel anggota atau parameter metode, Anda juga dapat menggunakan @Qualifier untuk mengonfigurasi injeksi berdasarkan nama. Metode inisialisasi dan metode hancur yang ditentukan dengan anotasi anotasi @postconstrut dan predestroy (karena banyak yang dapat didefinisikan). Tentukan ruang lingkup aksi kacang melalui @scope ("prototipe"). Tentukan pemuatan malas kacang dengan memberi label @lazy (true) pada definisi kelas.
Ketika kelas implementasi kacang dikembangkan oleh proyek saat ini, Anda dapat secara langsung menggunakan konfigurasi berbasis anotasi di kelas Java, dan konfigurasinya relatif sederhana.
3. Konfigurasi berbasis Java
@Configuration public class conf {@scope ("prototipe") @bean ("LoginUserdao") Public Loginuserdao LoginUserdao () {return new LoginUserdao (); }}Di kelas Java bertanda @configuration, tentukan kacang dengan anotasi @bean dalam metode kelas. Metode harus memberikan logika instantiasi untuk kacang. Nama kacang dapat ditentukan melalui atribut nama @Bean. Nama default adalah nama metode jika tidak ditentukan. Pada metode tersebut, gunakan @Autowired untuk mengikat metode ke parameter, dan kemudian menyuntikkannya melalui kode dalam metode; Anda juga dapat memanggil metode @Bean dari kelas konfigurasi untuk injeksi. Tentukan metode inisialisasi atau hancurkan melalui @bean's initmethod atau DestroyyMethod. Lingkup aksi kacang ditentukan oleh definisi metode kacang. Tentukan inisialisasi penundaan kacang dengan memberi label @lazy pada definisi metode bean.
Ketika logika instantiasi kacang lebih rumit, itu lebih cocok untuk konfigurasi kelas Java.
Meringkaskan
Di atas adalah semua konten dalam artikel ini tentang tiga metode konfigurasi kacang di Spring 3.x. 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!