欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決springboot報(bào)錯(cuò)找不到自動(dòng)注入的service問題

 更新時(shí)間:2021年08月12日 11:13:04   作者:Sum_mer_1121  
這篇文章主要介紹了解決springboot報(bào)錯(cuò)找不到自動(dòng)注入的service問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

springboot報(bào)錯(cuò)找不到自動(dòng)注入的service

找了不少資料,最后發(fā)現(xiàn)是每個(gè)service接口(雖然已經(jīng)使用了@service注解)的實(shí)現(xiàn)類都需要加上@service注解。

如果是使用junit生成的測(cè)試類,發(fā)現(xiàn)無法自動(dòng)注入服務(wù)的話

在test啟動(dòng)類前加上

@RunWith(SpringRunner.class)
@SpringBootTest
@ComponentScan("com.XXX.service")

這是因?yàn)閠est包和啟動(dòng)類不在同一個(gè)包或子包下,無法自動(dòng)注入

Springboot Service不被識(shí)別

根據(jù)以往經(jīng)驗(yàn),在Mapper接口沒有添加注解的情況下,Service中自動(dòng)注入的Mapper都會(huì)報(bào)紅,這次沒有報(bào)紅就知道會(huì)出錯(cuò),然后測(cè)試的時(shí)候果不其然報(bào)錯(cuò)了。

之所以沒有報(bào)紅是因?yàn)閟ervice類沒有被識(shí)別,就是@Service沒有被掃描,所以應(yīng)該是掃描路徑出了問題。

具體原因

在Springboot的啟動(dòng)類上添加@ComponentScan

@SpringbootApplication是一個(gè)復(fù)合注解,它中包含了:@SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan這三個(gè)注解。

@ComponentScan是組件掃描注解,它默認(rèn)掃描的是當(dāng)前包及以下用來掃描@Controller @Service @Repository這類被標(biāo)記的類。

錯(cuò)誤原因:

我的分布式項(xiàng)目中,路徑如下:

xxx.xxx.modle

xxx.xxx.mapper

xxx.xxx.service

xxx.xxx.web

啟動(dòng)類在web目錄下,因此@ComponentScan默認(rèn)掃描路徑是xxx.xxx.web

因?yàn)閣eb與modle、mapper、service在同一級(jí)別下所以無法掃描到@Service注解。

解決方法

方法一

將啟動(dòng)類移動(dòng)到上一級(jí)目錄。

方法二

自己定義掃描路徑,寫法如下:

//注解寫法:三種方法效果類似,都是指定掃描路徑
@ComponentScan("xxx.xxx")
@ComponentScan(value = "xxx.xxx")
@ComponentScan(basePackages = "xxx.xxx")

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論