本文介紹了自動(dòng)生成構(gòu)造函數(shù)和字段的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!
問(wèn)題描述
在執(zhí)行彈簧容器的自動(dòng)配置時(shí),自動(dòng)連接字段和構(gòu)造函數(shù)是否錯(cuò)誤。例如:
@Component
public class Test1 {
@Autowired
private Test2 B;
@Autowired
Test(Test2 C) {
this.B=C;
}
}
你能解釋一下到底發(fā)生了什么嗎?
推薦答案
錯(cuò)誤。您可能有兩個(gè)Test2
Bean,一個(gè)名為”B”,另一個(gè)名為”C”(名稱(chēng)應(yīng)為小寫(xiě)B(tài)TW)。將首先調(diào)用該構(gòu)造函數(shù),將該字段設(shè)置為C
;然后注入該字段,并使用B
覆蓋該字段。如果只有一個(gè)Test2
Bean,那么它將工作,但請(qǐng)記住,構(gòu)造函數(shù)注入的目的是避免字段注入,而是允許使用final
字段。
這篇關(guān)于自動(dòng)生成構(gòu)造函數(shù)和字段的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,