這篇文章主要介紹了Spring使用@Autowired為抽象父類注入依賴代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
創(chuàng)新互聯(lián)公司是一家以網(wǎng)站設(shè)計(jì)建設(shè),微信小程序開發(fā)、網(wǎng)站開發(fā)設(shè)計(jì),網(wǎng)絡(luò)軟件產(chǎn)品開發(fā),企業(yè)互聯(lián)網(wǎng)推廣服務(wù)為主的民營科技公司。主要業(yè)務(wù)涵蓋:為客戶提供網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、網(wǎng)站開發(fā)、域名申請、網(wǎng)站優(yōu)化排名、外鏈等服務(wù)領(lǐng)域。憑借建站老客戶口碑做市場,建設(shè)網(wǎng)站時,根據(jù)市場搜索規(guī)律和搜索引擎的排名收錄規(guī)律編程,全力為建站客戶設(shè)計(jì)制作排名好的網(wǎng)站,深受老客戶認(rèn)可和贊譽(yù)。
有時候?yàn)榱斯芾砘蛘弑苊獠灰恢滦裕M唧w服務(wù)統(tǒng)一繼承抽象父類,同時使用@Autowired為抽象父類注入依賴。搜了了網(wǎng)上,有些解決方法實(shí)現(xiàn)實(shí)在不敢恭維,靠子類去注入依賴,那還有什么意義,如下:
父類:
public abstract class BaseCar { Settings settings; }
@Component public class SportsCar extends BaseCar{ //Autowired修飾方法時,根據(jù)方法參數(shù)類型判斷實(shí)例化哪個類 @Autowired public void haha(Settings settings){ super.settings=settings;//父類屬性注入 } public void print(){ System.out.print(settings.getSpeed()); } }
這還叫自動???
經(jīng)仔細(xì)研究與測試,只要父類要注入的屬性是protected保護(hù)級別即可,如下:
public abstract class BusinessService { @Lazy @Autowired protected redisUtil redisUtil; Logger logger = LoggerFactory.getLogger(this.getClass()); }
子類繼承后就可以直接使用redisUtil了,不會出現(xiàn)未注入的情況。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。