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 是如何通過(guò) @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 用處如下;
掃描方法開(kāi)始流程:
主要觀察黃色方塊的方法,是具體掃描路徑的地方,具體實(shí)現(xiàn)流程如下:
獲取 File 目錄下的所有以 class 為結(jié)尾的文件后,掃描工作就完成了, 剩下的就是 spring 判斷是否要管理此類的邏輯(例如:該類是否存在 @Component )
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
SpringCloud如何解決服務(wù)之間的通信問(wèn)題
本文主要介紹了SpringCloud如何解決服務(wù)之間的通信問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-08-08@WebFilter在SpringBoot無(wú)效的原因分析和解決方案
使用Ruoyi的demo部署成功后,發(fā)現(xiàn)js、css等靜態(tài)文件都進(jìn)入了過(guò)濾器,但是發(fā)現(xiàn)靜態(tài)文件沒(méi)有使用瀏覽器緩存,新建BrowserCacheFilter.java并增加@WebFilter處理,應(yīng)用自動(dòng)重啟后發(fā)現(xiàn)@WebFilter無(wú)效,所以本文給大家介紹了@WebFilter在SpringBoot無(wú)效的原因分析和解決方案2024-03-03Spring Bean實(shí)例的創(chuàng)建及構(gòu)造器的挑選
這篇文章主要介紹了Spring Bean實(shí)例的創(chuàng)建及構(gòu)造器的挑選,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很好的幫助,需要的朋友可以參考下2021-04-04SpringBoot前后端分離實(shí)現(xiàn)驗(yàn)證碼操作
驗(yàn)證碼的功能是防止非法用戶惡意去訪問(wèn)登錄接口而設(shè)置的一個(gè)功能,今天我們就來(lái)看看在前后端分離的項(xiàng)目中,SpringBoot是如何提供服務(wù)的2022-05-05Java中MyBatis Plus知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家整理一篇關(guān)于Java中MyBatis Plus知識(shí)點(diǎn)總結(jié),需要的朋友們參考下。2019-10-10apollo更改配置刷新@ConfigurationProperties配置類
這篇文章主要為大家介紹了apollo更改配置刷新@ConfigurationProperties配置類示例解析,apollo更改配置刷新@ConfigurationProperties配置類2023-04-04