springboot掃描引入jar包的service等組件方式
在pom中引入對應的依賴,如果引入的三方jar包跟該項目Application所在包目錄包含被依賴jar包目錄,
即下面的情況:
像上面這種包組織的話,是不需要額外加入任何配置的(前提是依賴jar包相應組件一定要有@Component等註解修飾),因為springboot項目默認掃描目錄就是Application所在目錄及子目錄,但是這種情況僅限於單個項目安排,項目大瞭就不一定滿足瞭,
這時可以通過下面的方式引入掃描路徑:
或者通過@ComponentScan註解也可以,需要註意的是不要忘瞭掃描自身項目,因為加入@ComponentScan等註解後相當於沒有任何其他掃描目錄瞭,隻按照指定的目錄掃描!!!
springboot掃描不到依賴項目的service
場景:
有一個公共項目api_datasync.要掃描的類在com.api.common包下,現在有一個項目userauth,依賴瞭公共項目api_datasync.,Application啟動類在包com.base.userauth下,啟動後找不到capi_datasync項目中的類
解決辦法:
在Application啟動類添加註解@ComponentScan(value=”com”)即可解決問題,或者配置掃描多個包
@ComponentScan(basePackages= {“com.base.userauth”,”com.api.common”})
添加註解後,spring將隻掃描註解配置的包,不再自動掃描啟動類所在包及子包下的文件
註意:springboot 默認掃描的路徑,是該工程application啟動類所在包以及所有子包下的所有文件。
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- springBoot mybatis 包掃描實例
- springboot 啟動如何排除某些bean的註入
- 解決springboot報錯找不到自動註入的service問題
- SpringBoot中啟動時如何忽略某項檢測
- spring IOC控制反轉原理詳解