是否可以使用从同一个类生成的bean

我正在尝试使用从同一个类生成的 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()in的结果dogHouse()

保持dog()和dogHouse()在同一个java类中

这可能吗?如果是,我应该如何在 Test 类中注入 dog Bean?谢谢。


慕尼黑8549860
浏览 93回答 2
2回答

幕布斯6054654

@Bean  public DogHouse dogHouse() {    Dog d = dog();    ...    return dogHouse;  }当 @Bean 相互依赖时,为了解决这种依赖关系,一个 bean 方法可以调用另一个 bean 方法。在您的情况下,在dogHouse()中调用dog()非常好。

蓝山帝景

您可以使用参数注入让 spring 知道该DogHousebean 需要该Dogbean。@Beanpublic DogHouse dogHouse(Dog d) {  ...  return dogHouse;}Spring会Dog在构造bean的同时将bean注入到方法中DogHouse。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java