SpringBoot 自動掃描第三方包及spring.factories失效的問題解決
為什么會找不到
Spring 依賴注入 就是要讓spring找到要注入的類 并且識別到了 @Component、@Service 等注解。
1. 當(dāng)在開發(fā)的第三方包里寫明了 @Component、@Service 等等
2. 引入了包,不論第三方庫的引入,還是本地jar??傊且氲焦こ痰?/p>
這時(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)掃描范圍的,手動加入ComponentScan后,默認(rèn)就失效了。要手動加回來
2. 寫自動配置類
這種方法的原理與上一個(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工程就可以自動掃描到了。其實(shí)就時(shí)springboot啟動時(shí)會掃描依賴jar包下的這個(gè)路徑的spring.factories文件。這個(gè)文件可以寫很多配置,例如Listener等。
如上代碼將需要被掃描的類都寫進(jìn)去。
spring.factories 失效
這是版本問題,新的版本不再支持spring.factories文件了。改為上圖中一長串那樣的寫法 即 META-INF\spring\org.springframework.boot.autoconfigure.EnableAutoConfiguration.imports這樣,就是把原來的配置單獨(dú)形成文件,直接把要掃描的類寫進(jìn)這個(gè)文件就可以了,每行寫一個(gè),像這樣

到此這篇關(guān)于SpringBoot 自動掃描第三方包及spring.factories失效的問題的文章就介紹到這了,更多相關(guān)SpringBoot 自動掃描第三方包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解析Java的Spring框架的BeanPostProcessor發(fā)布處理器
這篇文章主要介紹了Java的Spring框架的BeanPostProcessor發(fā)布處理器,Spring是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下2015-12-12
jvm中指定時(shí)區(qū)信息user.timezone問題及解決方式
同一份程序使用時(shí)間LocalDateTime類型,在國內(nèi)和國外部署后,返回的時(shí)間信息前端使用出問題,這篇文章主要介紹了jvm中指定時(shí)區(qū)信息user.timezone問題及解決方法,需要的朋友可以參考下2023-02-02
java時(shí)間戳轉(zhuǎn)日期格式的實(shí)現(xiàn)代碼
本篇文章是對java時(shí)間戳轉(zhuǎn)日期格式的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
Java實(shí)現(xiàn)平鋪列表(List)互轉(zhuǎn)樹形(Tree)結(jié)構(gòu)
本文主要介紹了Java實(shí)現(xiàn)平鋪列表(List)互轉(zhuǎn)樹形(Tree)結(jié)構(gòu),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
springboot實(shí)現(xiàn)請求參數(shù)驗(yàn)證的多種方法
在日常開發(fā)中,我們少不了需要對前端的請求參數(shù)的驗(yàn)證,Spring提供了多種方法來實(shí)現(xiàn)請求參數(shù)的驗(yàn)證,文中通過代碼示例給大家講解的非常詳細(xì),我們一起了解一下吧2023-11-11
Java如何使用spire進(jìn)行word文檔的替換詳解
創(chuàng)作一份文案經(jīng)常會高頻率地使用某些詞匯,如地名、人名、人物職位等,若表述有誤,就需要整體撤換,下面這篇文章主要給大家介紹了關(guān)于Java如何使用spire進(jìn)行word文檔的替換的相關(guān)資料,需要的朋友可以參考下2023-01-01
JavaWeb中HttpSession中表單的重復(fù)提交示例
這篇文章主要介紹了JavaWeb中HttpSession中表單的重復(fù)提交,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03
Mybatis-plus基于redis實(shí)現(xiàn)二級緩存過程解析
這篇文章主要介紹了Mybatis-plus基于redis實(shí)現(xiàn)二級緩存過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08

