是否可以使用从相同 class 生成的 bean
Is it possible to use a bean generated from the same class
我正在尝试使用从同一个 class 生成的 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;
}
}
我必须遵守的两个要求:
- 在
dogHouse()
中使用dog()
的结果
- 将
dog()
和dogHouse()
保持在同一个javaclass
这可能吗?如果是,我应该如何在Test class中注入dog Bean?谢谢。
您可以使用参数注入让 spring 知道 DogHouse
bean 需要 Dog
bean。
@Bean
public DogHouse dogHouse(Dog d) {
...
return dogHouse;
}
Spring 将在构造 DogHouse
bean 时将 Dog
bean 注入到方法中。
@Bean
public DogHouse dogHouse() {
Dog d = dog();
...
return dogHouse;
}
当@Bean 相互依赖时,为了解决这种依赖关系,一个bean 方法可以调用另一个。在您的情况下,在 dogHouse() 中调用 dog() 完全没问题。
我正在尝试使用从同一个 class 生成的 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;
}
}
我必须遵守的两个要求:
- 在
dogHouse()
中使用 - 将
dog()
和dogHouse()
保持在同一个javaclass
dog()
的结果
这可能吗?如果是,我应该如何在Test class中注入dog Bean?谢谢。
您可以使用参数注入让 spring 知道 DogHouse
bean 需要 Dog
bean。
@Bean
public DogHouse dogHouse(Dog d) {
...
return dogHouse;
}
Spring 将在构造 DogHouse
bean 时将 Dog
bean 注入到方法中。
@Bean
public DogHouse dogHouse() {
Dog d = dog();
...
return dogHouse;
}
当@Bean 相互依赖时,为了解决这种依赖关系,一个bean 方法可以调用另一个。在您的情况下,在 dogHouse() 中调用 dog() 完全没问题。