spring中使用@Autowired注解無法注入的情況及解決
spring @Autowired注解無法注入
問題簡述
在使用spring框架的過程中,常會遇到這種兩情況:
1、在掃描的包以外使用需要使用mapper
2、同目錄下兩個controller或者兩個service,在使用@Autowired注解注入mapper或者service時,其中一個可以注入,另一個卻為空。
原因:(此處只說第二種)
樓主在經(jīng)過調(diào)試后發(fā)現(xiàn),在框架啟動的過程中,此注解其實是注入過的,并非沒有注入,只是在其后某處抹除了,至于原因,原諒樓主能力有限還未弄清楚,歡迎大家指正交流。
解決方案
這里樓主給出一種解決方案,實在無法注入的情況下,我們可以采用工具類的方法來注入:
@Component //當前類注解為spring組件
public class AbnormalRateUtil {
// 定義一個該類的靜態(tài)變量
private static AbnormalRateUtil abnormalRateUtil;
//注入所需mapper
@Autowired
private InterFaceInfoMapper interFaceInfoMapper;
@PostConstruct //此注解的方法在bean加載前執(zhí)行
private void init() {
abnormalRateUtil = this;
abnormalRateUtil.interFaceInfoMapper=this.interFaceInfoMapper;
//初始化時將靜態(tài)化的interFaceInfoMapper進行了實例化
}
//靜態(tài)get方法
public static AbnormalRateUtil getAbnormalRateUtil() {
return abnormalRateUtil;
}
//靜態(tài)get方法
public static InterFaceInfoMapper getInterFaceInfoMapper() {
return abnormalRateUtil.interFaceInfoMapper;
}
}
調(diào)用方式
在使用時可直接通過此工具類進行調(diào)用,如下:
List<InterFaceRuler> ruleList=AbnormalRateUtil.getInterFaceInfoMapper().findRuleById(id);
@Autowired注解注入失敗,提示could not autowire
controller層無法調(diào)用接口層提示could not autowire的解決辦法
主要原因是因為我們的spring檢驗級別的問題,我們可以通過降低檢驗的安全級別就可以解決這一問題。
File —> Settings—>Editor—>Inspections—>Spring————》將最右邊的Serverity改為Warning

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
List集合中對數(shù)據(jù)實現(xiàn)多重規(guī)則進行排序的案例
今天小編就為大家分享一篇關(guān)于List集合中對數(shù)據(jù)實現(xiàn)多重規(guī)則進行排序的案例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12
jackson 如何將實體轉(zhuǎn)json json字符串轉(zhuǎn)實體
這篇文章主要介紹了jackson 實現(xiàn)將實體轉(zhuǎn)json json字符串轉(zhuǎn)實體,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10

