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

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

獲取 File 目錄下的所有以 class 為結(jié)尾的文件后,掃描工作就完成了, 剩下的就是 spring 判斷是否要管理此類的邏輯(例如:該類是否存在 @Component )
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章:
1. 使用Python webdriver圖書館搶座自動預(yù)約的正確方法2. Python字符串到字節(jié)的轉(zhuǎn)換。雙反斜杠問題3. ASP基礎(chǔ)知識VBScript基本元素講解4. Linux刪除系統(tǒng)自帶版本Python過程詳解5. Python 合并拼接字符串的方法6. Python3 json模塊之編碼解碼方法講解7. Python sublime安裝及配置過程詳解8. ASP.NET MVC使用jQuery ui的progressbar實現(xiàn)進(jìn)度條9. python 使用事件對象asyncio.Event來同步協(xié)程的操作10. python為什么叫爬蟲?

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