Saat menggunakan pemindaian komponen, Anda perlu menentukan jalur pemindaian dalam konfigurasi XML sekarang
<konteks: komponen-scan back-package = "yangjq.test">
Instantiation Container memindai semua kelas komponen di bawah paket YangJQ.test dan subpaknya.
Hanya ketika definisi kelas komponen didahului oleh tanda anotasi berikut, kelas -kelas komponen ini akan dipindai ke dalam wadah musim semi.
- @component anotasi umum
- @name Anotasi Umum
- @Repository Persistence Layer Component Anotation
- Anotasi komponen lapisan bisnis @Service
- Anotasi komponen lapisan kontrol @controller
nama
Komponen akan menghasilkan nilai ID default (nama kelas dimulai dengan huruf kecil) selama proses pemindaian. Ini juga dapat disesuaikan dalam tanda anotasi, seperti:
// Ini adalah ID default, nilainya adalah oracleuserdao@RepositoryPublic kelas OracleUserdao mengimplementasikan userdao {} // ini adalah ID kustom, nilainya LogInservice@service ("LogInservice") Public ClasserService {}Ruang lingkup komponen
Ruang lingkup default komponen yang dikelola musim semi adalah "singleton". Jika Anda membutuhkan lingkup lain, Anda dapat menggunakan anotasi @scope, cukup berikan nama lingkup dalam anotasi.
@Scope ("prototipe")@RepositoryPublic kelas oracleUserdao mengimplementasikan userdao {}Inisialisasi dan Penghancuran
Tag anotasi @PostConstruct dan @predestroy digunakan untuk menentukan metode panggilan balik inisialisasi dan penghancuran, seperti:
Kelas Publik ExampleBean {@PostConstruct public void init () {// ......... inisialisasi} @predestroy public void dashing () {// ...... hancurkan}}Anotasi untuk kacang dengan hubungan injeksi ketergantungan
Itu dapat menggunakan salah satu berikut untuk mengimplementasikan injeksi relasional
- @Resource
- @Autowired/ @Qualifier
- @inject/ @dinamai
Biasanya, ada banyak @Resources yang digunakan, jadi mari kita bicara tentang @Resource. Jika Anda menggunakan yang lain, cari dan membacanya.
Tag anotasi @Resource dapat digunakan sebelum definisi bidang atau definisi metode setter. Secara default, injeksi pertandingan pertama digunakan berdasarkan nama, dan kemudian ketik injeksi pertandingan.
Public Class UserseriVce {//@Resource Ini digunakan untuk mendefinisikan userdao userdao private; @resource // ini digunakan untuk mendahului metode setter public void setuserdao (userdao dao) {this.userdao = dao;}}Kesalahan terjadi ketika beberapa kacang pencocokan ditemui. Anda dapat menentukan nama secara eksplisit, seperti @Resource (name = ”exampledao”).
Meringkaskan
Di atas adalah semua penjelasan terperinci tentang pemindaian komponen berbasis anotasi, dan 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!