springboot bean掃描路徑的實(shí)現(xiàn)
1:默認(rèn)掃描啟動(dòng)類所在路徑下所有的bean
2:可以在啟動(dòng)類中添加注解,手動(dòng)指定掃描路徑:
@ComponentScan(basePackages = {'com.xxx.service1.*','com.xxx.service2.**'})
補(bǔ)充:SpringBoot 是如何通過 @SpringBootApplication 掃描項(xiàng)目中的 Bean
原因首先因?yàn)?XXXXXXXApplication 附帶 @SpringBootApplication 注解,而 @SpringBootApplication 注解的層次如下:
SpringBootApplication----@Inherited----@SpringBootConfiguration--------@Configuration----@EnableAutoConfiguration--------@Inherited--------@AutoConfigurationPackage------------@Inherited------------@Import(AutoConfigurationPackages.Registrar.class)--------@Import(AutoConfigurationImportSelector.class)----@ComponentScan--------@Repeatable(ComponentScans.class)實(shí)現(xiàn)
可以看到 @SpringBootApplication 繼承 @ComponentScan 與 @Configuration 用處如下;
掃描方法開始流程:

主要觀察黃色方塊的方法,是具體掃描路徑的地方,具體實(shí)現(xiàn)流程如下:

獲取 File 目錄下的所有以 class 為結(jié)尾的文件后,掃描工作就完成了, 剩下的就是 spring 判斷是否要管理此類的邏輯(例如:該類是否存在 @Component )
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章:
1. 詳解Android studio 動(dòng)態(tài)fragment的用法2. 編程語言PHP在Web開發(fā)領(lǐng)域的優(yōu)勢(shì)在哪?3. Spring Boot和Thymeleaf整合結(jié)合JPA實(shí)現(xiàn)分頁效果(實(shí)例代碼)4. 什么是python的自省5. 解決Android studio xml界面無法預(yù)覽問題6. Android如何加載Base64編碼格式圖片7. 基于android studio的layout的xml文件的創(chuàng)建方式8. Springboot Druid 自定義加密數(shù)據(jù)庫密碼的幾種方案9. 圖文詳解vue中proto文件的函數(shù)調(diào)用10. Vuex localStorage的具體使用

網(wǎng)公網(wǎng)安備