第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

byName是怎么完成自動(dòng)裝配的?set方法是什么時(shí)候被調(diào)用的?

byName中的set方法是自動(dòng)被調(diào)用的么?怎么實(shí)現(xiàn)的?

執(zhí)行 InjectionService service = super.getBean("injectionService"); 是不是就同時(shí)執(zhí)行了

public?void?setInjectDao(injectDao?injectDao)?{
??????this.injectDao?=?injectDao;
}


正在回答

3 回答

執(zhí)行流程是:

  1. 加載spring配置文件。

  2. 通過構(gòu)造方法獲取service類的實(shí)例。(這里獲取到實(shí)例還沒有執(zhí)行Dao中的方法)

  3. 通過service實(shí)例調(diào)用service的方法,service中的方法調(diào)用Dao的方法,在service中通過私有化Dao類的屬性和set方法注入了Dao類。這里的set方法的參數(shù)就是ByName執(zhí)行的關(guān)鍵,在調(diào)用了service方法時(shí)會(huì)通過這個(gè)set方法的參數(shù)名去spring配置文件中找id和參數(shù)名稱一致的bean。找到后就裝配這個(gè)bean對應(yīng)的Dao類。

也就是說你set方法中的參數(shù)名injectDao必須要和spring配置文件中的id一樣,否則會(huì)找不到。

ByType的話就跟id沒有關(guān)系,會(huì)找類型一致的去加載。

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

未卜先知 提問者

非常感謝!這樣思路就清晰了
2016-12-13 回復(fù) 有任何疑惑可以回復(fù)我~
#2

Zuoxianyong

我覺得方法名要一致 而不是參數(shù) 你可以試試
2017-08-07 回復(fù) 有任何疑惑可以回復(fù)我~

public void testSay() {
?? ??? ?AutoWiringService service = super.getBean("autoWiringService");
?? ??? ?service.say(" this is a test");
?? ?}

super.getBean("autoWiringService");這個(gè)怎么理解,是什么意思



0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

未卜先知 提問者

從容器中獲取id的autoWiringService實(shí)例
2017-01-22 回復(fù) 有任何疑惑可以回復(fù)我~

我也是在學(xué)習(xí),有更深入的理解的話可以互相分享。嘿嘿

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

未卜先知 提問者

這幾天重新回顧并且驗(yàn)證下了,似乎和以前想的不一樣,應(yīng)該不是在執(zhí)行方法的時(shí)候注入的,而是在創(chuàng)建上下文的時(shí)候就全部完成了
2017-01-05 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

byName是怎么完成自動(dòng)裝配的?set方法是什么時(shí)候被調(diào)用的?

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號