關(guān)于分布式掃描bean問題及解決
分布式掃描bean
今天我突然想到,為什么現(xiàn)在項目上會有一個 spring.factories 文件,原來它是用來批量掃描類,然后加到容器中的。
前幾天我查了一下這個文件,發(fā)現(xiàn)這個文件是springboot運(yùn)行時,會查詢這個文件,然后把里面配置的類路徑掃描,我就在想,springboot明明會自動掃描,為啥還要個這個。
我還自己去搞了一個配置類
(因為第三方模塊的包路徑完全和自己的包路徑相同,所以我啟動springboot的時候它就掃描到了)也可以用,然后我記沒管它了。
所以我們現(xiàn)在就知道了有三種掃描bean的方式:
1、直接使用 @ComponentScan
但是springboot啟動類注解已經(jīng)包含他了,所以使用springboot就不用它了。
記得掃描的時候,把自己的服務(wù)掃描一次:
@ComponentScans(value = {
@ComponentScan(basePackages = {"com.fuxiUser", "com.common.config"})
})因為啟動類
@SpringBootApplication
有一個默認(rèn)的掃描啟動類同級目錄及其子目錄。
一旦我們自己寫了@ComponentScan,就不會用啟動類的了。所以得自己掃描全部,不然報錯404哦。
2、@Import({ScanTest.class})
挨個挨個掃描,這種方式也是可以的。
3、用spring.factories 文件
springboot在運(yùn)行的時候就會找到這個文件,加載里面的類到ioc中。
還有一個就是只要第三方包路徑和自己完全相同,也是會被springboot啟動類掃描的,但是幾乎不可能?。。?!
第三方模塊肯定有自己的包名,所以最上面遇到這個問題,純粹是因為自己不規(guī)范?。。?!
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot對象為null的屬性在json中不顯示的解決
這篇文章主要介紹了springboot對象為null的屬性在json中不顯示的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
java后臺利用Apache poi 生成excel文檔提供前臺下載示例
本篇文章主要介紹了java后臺利用Apache poi 生成excel文檔提供前臺下載示例,非常具有實用價值,需要的朋友可以參考下2017-05-05
springsecurity?登錄認(rèn)證流程分析一(ajax)
這篇文章主要介紹了springsecurity?登錄認(rèn)證一(ajax篇),本文通過實例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-08-08

