Dalam pengaturcaraan springboot, anotasi @Component ditambahkan dengan jelas pada kelas Person. Bekas menunjukkan bahawa objek Bean kelas Orang tidak dapat ditemui.
Saya mencari banyak penyelesaian konvensional di Internet, tetapi mendapati tiada satu pun daripada mereka yang berfungsi Kemudian saya menyedari bahawa ia mungkin menjadi masalah dengan pengimbasan pakej Memandangkan program utama saya pada masa itu diletakkan dalam folder nama yang sama dengan program utama, mengikut Peraturan pengimbasan pakej lalai - mengimbas kelas dalam pakej di mana program utama terletak dan semua sub-pakejnya, maka kelas Orang di bawah pakej domain secara semula jadi tidak akan diimbas, jadi walaupun @Component ditanda, ia tidak akan berkuat kuasa.
Tambah anotasi Komponen pada program utama
@ComponentScan("com.example")
Biar springboot berjaya mengimbas semua pakej di bawah contoh, maka ia akan menjadi masalah sudah tentu digunakan. Saya cuai dan tidak melaksanakan kelas Menambah anotasi @Component menyebabkan Spring melaporkan ralat bahawa kelas tidak dapat ditemui
@Component("conversionImpl") //其实默认的spring中的Bean id 为 conversionImpl(首字母小写) public class ConversionImpl implements Conversion { @Autowired private RedisClient redisClient; }
Pengenalan
Adalah tidak dapat dielakkan untuk menemui anotasi ini semasa pembangunan@ Komponen
@Controller Controller (perkhidmatan suntikan)digunakan untuk menandakan lapisan kawalan, yang bersamaan dengan lapisan tindakan dalam tupang
@ Perkhidmatan perkhidmatan (menyuntik dao)digunakan untuk menandakan lapisan perkhidmatan, terutamanya digunakan untuk pemprosesan logik perniagaan
@Repository (melaksanakan capaian dao)digunakan untuk menandakan lapisan capaian data, yang juga boleh dikatakan digunakan untuk menandakan komponen capaian data, iaitu, komponen DAO @Component (segerakkan pojo biasa ke dalam bekas spring, bersamaan dengan fail konfigurasi )
secara amnya merujuk kepada pelbagai komponen, iaitu, apabila kelas kita tidak tergolong dalam kepada pelbagai klasifikasi (apabila ia bukan milik @Controller, @Services, dll.), kita boleh menggunakan @Component untuk menganotasi kelas ini.
Contoh
Ini ialah format penulisan dalam fail konfigurasi, seperti applicationcontent.xml dalam spring mvc,
Format:<bean id="" class=""/>
Dalam but spring, memandangkan ia menggunakan konfigurasi sifar, anda hanya perlu menambah anotasi @komponen terus ke kelasApa yang saya tulis di bawah ialah memperkenalkan komponen pengimbasan komponen
<context:component-scan base-package=”com.mmnc.*”>
Contoh di atas ialah contoh memperkenalkan komponen Komponen, di mana pakej asas mewakili semua subpakej yang perlu diimbas.
Mata biasa:Kelas yang dijelaskan oleh @controller, @service, @repository dan @component semuanya akan dimasukkan ke dalam bekas spring untuk pengurusan
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan kegagalan suntikan anotasi SpringBoot @Componet. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!