您好,登錄后才能下訂單哦!
小編給大家分享一下如何解決SpringBoot引用別的模塊無法注入的問題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
前段時間嘗試著利用空閑時間搭建了一個IIM消息通信系統,目前還是Demo級別,具體實現還在不斷補充,在開發過程中遇到了一個小問題,在此分享出來。
由于前期搭建的比較匆忙,擱那狂寫調用邏輯,沒注意自己的包名有點奇怪。
目前是分為這三個模塊,客戶端,公共處理模塊,服務端,不過我正在琢磨著給這玩意再整個路由注冊中心,便于客戶端和服務端的橫向拓展。
目前我server子模塊的包名和common子模塊的包路徑如下
我在service包里的類里引用common包下的公共類時,發現無法注入我的消息分發器公共類;
emmmmm…以前自己配置過XML的包掃描,沒試過注解的掃描。
1.在啟動類**@SpringBootApplication**加參數 ,掃描指定的包
@SpringBootApplication(scanBasePackages = {“com.zhl.dispatcher”,“server.server”})
這里也包括其他模塊的包,掃描到包及子包的類。加載進Spring的容器當中。
2.新增注解
@ComponentScan(value = {“com.zhl.dispatcher”,“server.server”})
第二種其實這個注解是有些多余,@SpringBootApplication本身就已經包含掃描包路徑的屬性了,不過這兩種方法都可以用哦
在一個springboot項目中創建了一個common模塊,一個admin模塊,
在admin模塊中引入common模塊依賴,發現無法注入common模塊中的bean,idea提示無法找到bean。
瞎忙活一晚上,最后發現是兩個模塊路徑不同意,一個是com.example.common,另一個是com.example.admin。
這是因為springboot的@SpringBootApplication注解默認掃描范圍為自己的啟動類所在的包(com.example.admin)及其子包,所以此時模塊admin并沒有掃描到模塊common的bean,那么自然無法在模塊admin中注入模塊common的Service類。
最后:
方法一:都改成com.example就好了。
方法二:手動修改成導入多個包,@SpringBootApplication(scanBasePackages = {“com.example.admin”, “com.example.common”})
以上是“如何解決SpringBoot引用別的模塊無法注入的問題”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。