Rumah >Java >javaTutorial >Bagaimana untuk menyelesaikan kegagalan suntikan anotasi SpringBoot @Componet

Bagaimana untuk menyelesaikan kegagalan suntikan anotasi SpringBoot @Componet

PHPz
PHPzke hadapan
2023-05-14 11:55:062473semak imbas

    @Suntikan anotasi komponen gagal

    Penerangan masalah

    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.

    SpringBoot @Componet注解注入失败如何解决

    Penyelesaian

    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

    Sebaik sahaja anotasi tentang Spring muncul dalam kelas, contohnya, saya menggunakan anotasi @Autowired dalam kelas pelaksanaan, dan yang beranotasi Kelas dikeluarkan daripada bekas Spring, dan kelas pelaksanaan yang dipanggil juga perlu diuruskan oleh bekas Spring, ditambah @Component

    @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!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam