Masalah utama dalam artikel ini digunakan untuk mengimplementasikan perakitan atribut menggunakan anotasi @Resource, yang melibatkan injeksi ketergantungan - perakitan manual, perbedaan antara anotasi @Autowired dan @Resource, dll., Sebagai berikut.
Gunakan injeksi lapangan (untuk metode anotasi): Suntikan objek yang tergantung dapat dirakit secara manual atau dirakit secara manual secara otomatis. Perakitan manual direkomendasikan dalam aplikasi praktis, karena perakitan otomatis akan menyebabkan situasi yang tidak diketahui dan pengembang tidak dapat meramalkan hasil perakitan akhir.
Injeksi Ketergantungan - Majelis Manual
Ada dua metode pemrograman untuk merakit objek yang bergantung secara manual.
1. Dalam file konfigurasi XML, konfigurasikan melalui node kacang, seperti:
<bean id = "orderservice"> // injeksi konstruktor <constructor-arg index = "0" type = "java.lang.string" value = "xxx"/> // Metode setter properti Injeksi <nama properti = "name" value = "zhao"/> </ bean>
2. Gunakan anotasi @Autowired atau @resource untuk berkumpul dalam kode java. Tetapi kita perlu mengonfigurasi informasi dalam file konfigurasi XML
<beans xmlns = "http://www.springframework.org/schema/beans" xmlns = "http://www.w3.org/2001/xmlschema-instance" xmlns: context = "http://wwwork.org XSI: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/context http:/www.springframework.org/schema/context
Konfigurasi ini secara implisit mendaftarkan beberapa prosesor yang menguraikan komentar:
AnnotationBeanPostProcessor Autowired, CommonAnnotationBeanPostProcessor
PersistenceanNotationBeanProcessor, diperlukanNotationBeanPostProcessor
3. Perbedaan
Gunakan anotasi @Autowired atau @resource untuk berkumpul dalam kode java. Perbedaan antara dua anotasi ini adalah bahwa @Autowired dirakit berdasarkan tipe secara default @resource dirakit dengan nama secara default. Hanya ketika kacang yang cocok dengan nama tidak dapat ditemukan akan dirakit berdasarkan jenis
@AutowiredPrivate Perondao persondao; // digunakan di lapangan @AutowiredPublic void setorderdao (orderdao orderdao) {this.orderdao = orderdao; // Digunakan pada metode setter properti}Anotasi @Autowired adalah untuk merakit objek dependen berdasarkan jenis. Secara default, itu mengharuskan objek dependen harus ada. Jika nilai nol diperbolehkan, itu dapat diatur ke false; Jika kita ingin berkumpul dengan nama, kita dapat menggunakannya bersamaan dengan anotasi @qualfier, sebagai berikut:
@Autowired@kualifikasi ("persondao") private persondao persondao;Anotasi @Resource, seperti @Autowired, dapat dijelaskan pada metode setter bidang atau properti, tetapi dirakit dengan nama secara default. Nama dapat ditentukan melalui atribut nama @Resource; Jika atribut nama tidak ditentukan, ketika anotasi ditandai di lapangan, nama bidang default digunakan sebagai nama kacang untuk mencari objek ketergantungan; Saat anotasi ditandai pada metode setter properti, nama atribut digunakan sebagai nama kacang untuk mencari objek dependensi
@Resource (name = "persondaobean") persondao persondao pribadi;
Catatan: Jika atribut nama tidak ditentukan dan objek masih belum ditemukan secara default, anotasi @Resource jatuh kembali ke perakitan berdasarkan jenis. Tetapi begitu atribut nama ditentukan, itu hanya dapat dirakit dengan nama.
Meringkaskan
Di atas adalah semua penjelasan terperinci dari implementasi kode perakitan atribut melalui anotasi @Resource. Saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke situs ini:
" Penjelasan terperinci tentang Metode dan Kode Kacang Instantiasi Musim Semi "
" Metode Pabrik Contoh Spring dan Metode Statis Metode Contoh Kode "
" Spring menggunakan kode untuk membaca analisis instance file properti "
Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!