我正在尝试使用从同一类生成的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;
}
}
我必须遵守的两个要求:
dog()
中dogHouse()
的结果dog()
和dogHouse()
保留在相同的Java类中这可能吗?如果是的话,我应该如何在Test类中注入狗Bean?谢谢。
答案 0 :(得分:1)
您可以使用参数注入使spring知道DogHouse
bean需要Dog
bean。
@Bean
public DogHouse dogHouse(Dog d) {
...
return dogHouse;
}
Spring将在构造Dog
bean的同时将DogHouse
bean注入该方法。
答案 1 :(得分:0)
@Bean
public DogHouse dogHouse() {
Dog d = dog();
...
return dogHouse;
}
当@Bean相互依赖时,为了解决此依赖关系,一个bean方法可以调用另一个。就您而言,在 dogHouse()内部调用 dog()完全可以。