關(guān)于分布式掃描bean問題及解決
分布式掃描bean
今天我突然想到,為什么現(xiàn)在項(xiàng)目上會(huì)有一個(gè) spring.factories 文件,原來它是用來批量掃描類,然后加到容器中的。
前幾天我查了一下這個(gè)文件,發(fā)現(xiàn)這個(gè)文件是springboot運(yùn)行時(shí),會(huì)查詢這個(gè)文件,然后把里面配置的類路徑掃描,我就在想,springboot明明會(huì)自動(dòng)掃描,為啥還要個(gè)這個(gè)。
我還自己去搞了一個(gè)配置類
(因?yàn)榈谌侥K的包路徑完全和自己的包路徑相同,所以我啟動(dòng)springboot的時(shí)候它就掃描到了)也可以用,然后我記沒管它了。
所以我們現(xiàn)在就知道了有三種掃描bean的方式:
1、直接使用 @ComponentScan
但是springboot啟動(dòng)類注解已經(jīng)包含他了,所以使用springboot就不用它了。
記得掃描的時(shí)候,把自己的服務(wù)掃描一次:
@ComponentScans(value = {
@ComponentScan(basePackages = {"com.fuxiUser", "com.common.config"})
})因?yàn)閱?dòng)類
@SpringBootApplication
有一個(gè)默認(rèn)的掃描啟動(dòng)類同級(jí)目錄及其子目錄。
一旦我們自己寫了@ComponentScan,就不會(huì)用啟動(dòng)類的了。所以得自己掃描全部,不然報(bào)錯(cuò)404哦。
2、@Import({ScanTest.class})
挨個(gè)挨個(gè)掃描,這種方式也是可以的。
3、用spring.factories 文件
springboot在運(yùn)行的時(shí)候就會(huì)找到這個(gè)文件,加載里面的類到ioc中。
還有一個(gè)就是只要第三方包路徑和自己完全相同,也是會(huì)被springboot啟動(dòng)類掃描的,但是幾乎不可能?。。?!
第三方模塊肯定有自己的包名,所以最上面遇到這個(gè)問題,純粹是因?yàn)樽约翰灰?guī)范?。。。?/p>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- SpringBoot組件掃描未覆蓋導(dǎo)致Bean注冊(cè)失敗問題的解決方案
- Spring創(chuàng)建BeanDefinition之路徑掃描詳解
- Spring 方法注解@Bean及配置類掃描路徑
- 關(guān)于@ComponentScan?TypeFilter自定義指定掃描bean的規(guī)則
- Spring中Bean掃描原理詳情
- Spring?IOC容器Bean注解創(chuàng)建對(duì)象組件掃描
- springboot自動(dòng)掃描添加的BeanDefinition源碼實(shí)例詳解
- Spring整合Mybatis 掃描注解創(chuàng)建Bean報(bào)錯(cuò)的解決方案
相關(guān)文章
java實(shí)現(xiàn)肯德基收銀系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)肯德基收銀系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05
springboot對(duì)象為null的屬性在json中不顯示的解決
這篇文章主要介紹了springboot對(duì)象為null的屬性在json中不顯示的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
詳解Spring注解驅(qū)動(dòng)開發(fā)之屬性賦值
今天帶大家學(xué)習(xí)Spring注解驅(qū)動(dòng)開發(fā)的相關(guān)知識(shí),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)Java的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05
java后臺(tái)利用Apache poi 生成excel文檔提供前臺(tái)下載示例
本篇文章主要介紹了java后臺(tái)利用Apache poi 生成excel文檔提供前臺(tái)下載示例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-05-05
Maven項(xiàng)目打包時(shí)添加本地Jar包的操作步驟
在 Maven 項(xiàng)目開發(fā)中,我們經(jīng)常會(huì)遇到需要引入本地 Jar 包的場(chǎng)景,比如使用未發(fā)布到中央倉(cāng)庫(kù)的第三方庫(kù)或者處理版本沖突的依賴項(xiàng),本文將詳細(xì)介紹如何通過 Maven 命令將本地 Jar 包安裝到本地倉(cāng)庫(kù),并在項(xiàng)目中正確引用,需要的朋友可以參考下2025-05-05
springsecurity?登錄認(rèn)證流程分析一(ajax)
這篇文章主要介紹了springsecurity?登錄認(rèn)證一(ajax篇),本文通過實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-08-08
利用Spring AOP記錄方法的執(zhí)行時(shí)間
這篇文章給大家介紹的是spring的aop來實(shí)現(xiàn)方法級(jí)的執(zhí)行時(shí)間的記錄監(jiān)控,以此來評(píng)估方法的性能以及針對(duì)性的對(duì)已存在的方法進(jìn)行優(yōu)化。對(duì)于監(jiān)控,我們比較關(guān)注監(jiān)控的可靠性和性能,準(zhǔn)確,高效,這才能在不影響整體性能的情況下對(duì)我們的系統(tǒng)性能有個(gè)較準(zhǔn)確的認(rèn)識(shí)。2016-09-09

