SpringBoot 自動(dòng)掃描第三方包及spring.factories失效的問題解決
為什么會(huì)找不到
Spring 依賴注入 就是要讓spring找到要注入的類 并且識(shí)別到了 @Component、@Service 等注解。
1. 當(dāng)在開發(fā)的第三方包里寫明了 @Component、@Service 等等
2. 引入了包,不論第三方庫的引入,還是本地jar。總之是要引入到工程的
這時(shí)候還加入不到 IOC 容器,那就說明SpringBoot工程沒有掃描到這些類。
解決方法
1. componentScan 或者SpringBootApplication(scanBasePackages= )
@SpringBootApplication @ComponentScan(basePackages = {"com.example.gradlespringbootdemo","com.example.gradlespringboottest"}) public class GradleSpringbootTestApplication { public static void main(String[] args) { SpringApplication.run(GradleSpringbootTestApplication.class, args); }
SpringBootApplication 是個(gè)三合一的注解,其中就包含了ComponentScan 。本身是要默認(rèn)掃描范圍的,手動(dòng)加入ComponentScan后,默認(rèn)就失效了。要手動(dòng)加回來
2. 寫自動(dòng)配置類
這種方法的原理與上一個(gè)其實(shí)是一樣的,實(shí)際作用還是在目標(biāo)上加入了componentScan 的掃描注解
3. spring.factories文件
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.example.gradlespringbootdemo.service.TestService\ AbcClass\ DefClass
當(dāng)開發(fā)第三方包時(shí),可以使用這種方法。這樣使用這個(gè)包的springboot工程就可以自動(dòng)掃描到了。其實(shí)就時(shí)springboot啟動(dòng)時(shí)會(huì)掃描依賴jar包下的這個(gè)路徑的spring.factories文件。這個(gè)文件可以寫很多配置,例如Listener等。
如上代碼將需要被掃描的類都寫進(jìn)去。
spring.factories 失效
這是版本問題,新的版本不再支持spring.factories文件了。改為上圖中一長(zhǎng)串那樣的寫法 即 META-INF\spring\org.springframework.boot.autoconfigure.EnableAutoConfiguration.imports這樣,就是把原來的配置單獨(dú)形成文件,直接把要掃描的類寫進(jìn)這個(gè)文件就可以了,每行寫一個(gè),像這樣
到此這篇關(guān)于SpringBoot 自動(dòng)掃描第三方包及spring.factories失效的問題的文章就介紹到這了,更多相關(guān)SpringBoot 自動(dòng)掃描第三方包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解析Java的Spring框架的BeanPostProcessor發(fā)布處理器
這篇文章主要介紹了Java的Spring框架的BeanPostProcessor發(fā)布處理器,Spring是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下2015-12-12jvm中指定時(shí)區(qū)信息user.timezone問題及解決方式
同一份程序使用時(shí)間LocalDateTime類型,在國(guó)內(nèi)和國(guó)外部署后,返回的時(shí)間信息前端使用出問題,這篇文章主要介紹了jvm中指定時(shí)區(qū)信息user.timezone問題及解決方法,需要的朋友可以參考下2023-02-02java中動(dòng)態(tài)代理的實(shí)現(xiàn)
本篇文章主要介紹了Java中兩種動(dòng)態(tài)代理的實(shí)現(xiàn):jdk動(dòng)態(tài)代理;cglib動(dòng)態(tài)代理。具有一定的參考價(jià)值,下面跟著小編一起來看下吧2017-01-01Java中的 VO,BO,DO 對(duì)象命名問題小結(jié)
本文講解VO,BO,DO 的作用以及如何使用,分析了如何消除三者之間重復(fù)的代碼,同樣結(jié)合現(xiàn)實(shí)生活中領(lǐng)導(dǎo)配秘書來類比講解,對(duì)Java VO 對(duì)象命名相關(guān)知識(shí)感興趣的朋友一起看看吧2024-01-01java時(shí)間戳轉(zhuǎn)日期格式的實(shí)現(xiàn)代碼
本篇文章是對(duì)java時(shí)間戳轉(zhuǎn)日期格式的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06Java實(shí)現(xiàn)平鋪列表(List)互轉(zhuǎn)樹形(Tree)結(jié)構(gòu)
本文主要介紹了Java實(shí)現(xiàn)平鋪列表(List)互轉(zhuǎn)樹形(Tree)結(jié)構(gòu),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08springboot實(shí)現(xiàn)請(qǐng)求參數(shù)驗(yàn)證的多種方法
在日常開發(fā)中,我們少不了需要對(duì)前端的請(qǐng)求參數(shù)的驗(yàn)證,Spring提供了多種方法來實(shí)現(xiàn)請(qǐng)求參數(shù)的驗(yàn)證,文中通過代碼示例給大家講解的非常詳細(xì),我們一起了解一下吧2023-11-11Java如何使用spire進(jìn)行word文檔的替換詳解
創(chuàng)作一份文案經(jīng)常會(huì)高頻率地使用某些詞匯,如地名、人名、人物職位等,若表述有誤,就需要整體撤換,下面這篇文章主要給大家介紹了關(guān)于Java如何使用spire進(jìn)行word文檔的替換的相關(guān)資料,需要的朋友可以參考下2023-01-01JavaWeb中HttpSession中表單的重復(fù)提交示例
這篇文章主要介紹了JavaWeb中HttpSession中表單的重復(fù)提交,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03Mybatis-plus基于redis實(shí)現(xiàn)二級(jí)緩存過程解析
這篇文章主要介紹了Mybatis-plus基于redis實(shí)現(xiàn)二級(jí)緩存過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08