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

Bagaimana untuk menyelesaikan kegagalan suntikan anotasi SpringBoot @Componet

PHPz
Lepaskan: 2023-05-14 11:55:06
ke hadapan
2517 orang telah melayarinya

    @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")
    Salin selepas log masuk

    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;
    }
    Salin selepas log masuk

    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=""/>
    Salin selepas log masuk

    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.*”>
    Salin selepas log masuk

    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!

    Label berkaitan:
    sumber:yisu.com
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan