springboot多模塊包掃描問題的解決方法
問題描述:
springboot建立多個模塊,當一個模塊需要使用另一個模塊的服務時,需要注入另一個模塊的組件,如下面圖中例子:


memberservice模塊中的MemberServiceApiImpl類需要注入common模塊中的RedisService組件,該怎么注入呢?
解決:
在memberservice模塊的啟動類上加上RedisService類所在包的全路徑的組件掃描,就像這樣:

注意啟動類上方的注解@ComponentScan(basePackages={“com.whu.commom.redis”}),這一句實際上就已經加上了RedisService的組件掃描,但是這樣做是有問題的,我發現啟動后服務不能正常訪問。查找資料后發現是因為@ComponentScan 和@SpringBootApplication注解的包掃描有沖突,@ComponentScan注解包掃描會覆蓋掉@SpringBootApplication的包掃描。解決辦法就是在@ComponentScan(basePackages={“com.whu.commom.redis”})的基礎上加上@SpringBootApplication掃描的包,那么@SpringBootApplication掃描了哪些包呢?實際上,它默認掃描的是啟動類所在的包及其子包,所以我的例子上需要改成@ComponentScan(basePackages={“com.whu.commom.redis”,“com.whu.memberservice”}). OK ,結束!!
到此這篇關于springboot多模塊包掃描問題的解決方法的文章就介紹到這了,更多相關springboot多模塊包掃描內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
1. 詳解Android studio 動態fragment的用法2. 基于android studio的layout的xml文件的創建方式3. 編程語言PHP在Web開發領域的優勢在哪?4. 解決Android studio xml界面無法預覽問題5. 什么是python的自省6. Spring Boot和Thymeleaf整合結合JPA實現分頁效果(實例代碼)7. 圖文詳解vue中proto文件的函數調用8. Android如何加載Base64編碼格式圖片9. Springboot Druid 自定義加密數據庫密碼的幾種方案10. Vue封裝一個TodoList的案例與瀏覽器本地緩存的應用實現

網公網安備