- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) >
- Spring如何使用@Autowired為抽象父類(lèi)注入依賴(lài)
這篇文章主要為大家展示了“Spring如何使用@Autowired為抽象父類(lèi)注入依賴(lài)”,內容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習一下“Spring如何使用@Autowired為抽象父類(lèi)注入依賴(lài)”這篇文章吧。
有時(shí)候為了管理或者避免不一致性,希望具體服務(wù)統一繼承抽象父類(lèi),同時(shí)使用@Autowired為抽象父類(lèi)注入依賴(lài)。搜了了網(wǎng)上,有些解決方法實(shí)現實(shí)在不敢恭維,靠子類(lèi)去注入依賴(lài),那還有什么意義,如下:
父類(lèi):
public abstract class BaseCar { Settings settings;}
@Componentpublic class SportsCar extends BaseCar{ //Autowired修飾方法時(shí),根據方法參數類(lèi)型判斷實(shí)例化哪個(gè)類(lèi) @Autowired public void haha(Settings settings){ super.settings=settings;//父類(lèi)屬性注入 } public void print(){ System.out.print(settings.getSpeed()); }}
這還叫自動(dòng)???
經(jīng)仔細研究與測試,只要父類(lèi)要注入的屬性是protected保護級別即可,如下:
public abstract class BusinessService { @Lazy @Autowired protected Util redisUtil; Logger logger = LoggerFactory.getLogger(this.getClass());}
子類(lèi)繼承后就可以直接使用redisUtil了,不會(huì )出現未注入的情況。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站