解決SpringBoot掃描不到公共類的實體問題
SpringBoot掃描不到公共類的實體
我的項目結構是
parent
ademobdemo
parent是一個大項目,項目里面有web、service和entity三個子項目 ademo 依賴于bdemo里面的實體。
aProject項目的包結構是com.test.ademo
bProject項目的包結構是com.test.bdemo
以下的問題是我沒有忘記標注@Component、@Service等容器注解
在ademo項目里面使用@Autowired的時候有異常說是可能會Autowired失敗,但是編譯沒有問題,我就直接run項目,執(zhí)行結果是報空指針異常,說明對象確實自動導入失敗了。經過很多查閱后發(fā)現(xiàn)只需要將兩個項目的包名改成一樣的就可以,或者使用@ComponentScan在啟動類上面加入ademo和bdemo的包名即可
1、將ademo和bdemo的包名改成com.test.project
2、在ademo的啟動類上面加上@ComponentScan({“com.example.ademo”,“com.example.bdemo”})
在執(zhí)行第二點的時候注意就是如果在啟動類上面標注了@ComponentScan就會使會使@SpringBootApplication注解中包含的@ComponentScan注解(即默認的掃描包的位置)失效
具體原因:
因為啟動類上面的@SpringBootApplication里面默認包含了一個@ComponentScan注解,這個注解默認情況下是掃描該類所屬包下面的所有類,包含子目錄中的類。
因為所有網上的注解都是上面那樣的所以我就去想著是不是打包的時候將bdemo的項目跟ademo可結合在了一起所以拿不到com.test.ademo包下的文件,但是拿mvn打包后發(fā)現(xiàn)并不是。哈哈
下面是將ademo打包了的結構




代碼證明如果加上
@ComponentScan({“com.example.ademo”,“com.example.bdemo”})
是可以掃描到UserService類的,如果不加是獲取不到的,應該跟SpringBoot底層加載類是相關的,大家有興趣可以去看一下底層,在底層的我就不再這里講了,自己去看吧。
springboot打包,找不到pojo實體類
修改spring-boot-maven-plugin組件

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Java利用數(shù)組隨機抽取幸運觀眾如何實現(xiàn)
這篇文章主要介紹了Java利用數(shù)組隨機抽取幸運觀眾如何實現(xiàn),需要的朋友可以參考下2014-02-02
Spring-Cloud Eureka注冊中心實現(xiàn)高可用搭建
這篇文章主要介紹了Spring-Cloud Eureka注冊中心實現(xiàn)高可用搭建,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04
Java 實戰(zhàn)項目之疫情防控管理系統(tǒng)詳解
讀萬卷書不如行萬里路,只學書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Java實現(xiàn)一個疫情防控管理系統(tǒng),大家可以在過程中查缺補漏,提升水平2021-11-11
Java基于循環(huán)遞歸回溯實現(xiàn)八皇后問題算法示例
這篇文章主要介紹了Java基于循環(huán)遞歸回溯實現(xiàn)八皇后問題算法,結合具體實例形式分析了java的遍歷、遞歸、回溯等算法實現(xiàn)八皇后問題的具體步驟與相關操作技巧,需要的朋友可以參考下2017-06-06

