慕尼黑8549860
2022-12-15 15:22:18
我正在嘗試使用從同一個(gè)類生成的 bean。例如:public class Test { ... @Bean public Dog dog() { ... return dog; } @Bean public DogHouse dogHouse() { Dog d = dog(); // Is this right? Can I inject dog bean here? ... return dogHouse; }}我必須遵守兩個(gè)要求:使用dog()in的結(jié)果dogHouse()保持dog()和dogHouse()在同一個(gè)java類中這可能嗎?如果是,我應(yīng)該如何在 Test 類中注入 dog Bean?謝謝。
2 回答

幕布斯6054654
TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊
@Bean
public DogHouse dogHouse() {
Dog d = dog();
...
return dogHouse;
}
當(dāng) @Bean 相互依賴時(shí),為了解決這種依賴關(guān)系,一個(gè) bean 方法可以調(diào)用另一個(gè) bean 方法。在您的情況下,在dogHouse()中調(diào)用dog()非常好。

藍(lán)山帝景
TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊
您可以使用參數(shù)注入讓 spring 知道該DogHousebean 需要該Dogbean。
@Bean
public DogHouse dogHouse(Dog d) {
...
return dogHouse;
}
Spring會(huì)Dog在構(gòu)造bean的同時(shí)將bean注入到方法中DogHouse。
添加回答
舉報(bào)
0/150
提交
取消