Springboot無法注入service問題
Springboot無法注入service
SpringBoot項(xiàng)目的Bean裝配默認(rèn)規(guī)則是根據(jù)Application類所在的包位置從上往下掃描!
“Application類”是指SpringBoot項(xiàng)目入口類。
這個類的位置很關(guān)鍵
如果Application類所在的包為:com.boot.app,則只會掃描com.boot.app包及其所有子包,如果service或dao所在包不在com.boot.app及其子包下,則不會被掃描!
即,把Application類放到dao、service所在包的上級,com.boot.Application
知道這一點(diǎn)非常關(guān)鍵,大多數(shù)情況下bean無法注入進(jìn)來都是這個原因引起的。
附上正確目錄結(jié)構(gòu)
Springboot報(bào)錯找不到自動注入的service
找了不少資料,最后發(fā)現(xiàn)是每個service接口(雖然已經(jīng)使用了@service注解)的實(shí)現(xiàn)類都需要加上@service注解。
如果是使用junit生成的測試類,發(fā)現(xiàn)無法自動注入服務(wù)的話,在test啟動類前加上
@RunWith(SpringRunner.class) @SpringBootTest @ComponentScan("com.XXX.service")
這是因?yàn)閠est包和啟動類不在同一個包或子包下,無法自動注入
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot Security實(shí)現(xiàn)單點(diǎn)登出并清除所有token
Spring Security是一個功能強(qiáng)大且高度可定制的身份驗(yàn)證和訪問控制框架。提供了完善的認(rèn)證機(jī)制和方法級的授權(quán)功能。是一款非常優(yōu)秀的權(quán)限管理框架。它的核心是一組過濾器鏈,不同的功能經(jīng)由不同的過濾器2023-01-01Spring動態(tài)數(shù)據(jù)源實(shí)現(xiàn)讀寫分離詳解
這篇文章主要為大家詳細(xì)介紹了Spring動態(tài)數(shù)據(jù)源實(shí)現(xiàn)讀寫分離,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07spring cloud-給Eureka Server加上安全的用戶認(rèn)證詳解
這篇文章主要介紹了spring cloud-給Eureka Server加上安全的用戶認(rèn)證詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01SpringBoot使用Nacos配置中心的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot使用Nacos配置中心的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12