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

标签 java spring dependency-injection javabeans

我正在尝试使用从同一类生成的 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() 保留在同一个 java 类中

这可能吗?如果是的话,我应该如何在测试类中注入(inject)狗Bean?谢谢。

最佳答案

@Bean
  public DogHouse dogHouse() {
    Dog d = dog();
    ...
    return dogHouse;
  }

当 @Bean 相互依赖时,为了解决这种依赖关系,一个 bean 方法可以调用另一个 bean 方法。在您的情况下,在 dogHouse() 内部调用 dog() 是完全没问题的。

关于java - 是否可以使用从同一个类生成的bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56320529/

相关文章:

Java - 为什么这两个类不能相互通信?

spring - 如何设置 intellij 在日志选项卡而不是输出选项卡中显示日志

java - 无法使用 Spring 和 Hibernate 保存表单数据

java - 有没有办法重新注入(inject)/更新注入(inject)的 bean 字段?

Java 输入和文件读取器

java - 创建一个每 x 秒执行一次的方法

java - 如何从富文本压缩和调整图像大小

java - 多个 Spring 项目,共享身份验证

java - 我可以对 Android 组件(例如 Activity 和服务)使用控制反转吗?

spring-boot - SpringBoot 中的 Kotlin - `init` block 的初始化顺序