【问题标题】:Spring configuration - Autowired bean required?Spring 配置 - 需要自动装配的 bean?
【发布时间】:2018-06-15 00:27:40
【问题描述】:

我有一个原型 bean 包含一个单例 bean 的情况。为了实现它,我必须创建 2 个配置类。是否可以将我的 2 个配置类合并为一个?

单例类:

public class MySingleton {
}

原型类:

public class MyPrototype {

    private MySingleton b;

    public MyPrototype(MySingleton b) {
       this.b = b;
   }
}

配置类 1:

@Configuration
public class ConfigClassA {

   @Bean
   public MySingleton myBean() {
       return new MySingleton();
   }

}

配置类 2:

@Configuration
public class ConfigClassB {

   @Autowired
   public MySingleton mb;

   @Bean
   @Scope("prototype")
   public MyPrototype myPrototype() {
       return new MyPrototype(mb);
   }

}

【问题讨论】:

  • 为什么不可能。
  • 好吧,我并不是说这是不可能的,只是想知道如何更好地配置它。下面 Tanja 的回答是完美的。

标签: spring spring-boot configuration autowired


【解决方案1】:

试试这个:

@Configuration
public class ConfigClass {

   @Bean
   public MySingleton myBean() {
     return new MySingleton();
   } 

   @Bean
   @Scope("prototype")
   public MyPrototype myPrototype(MySingleton myBean) {
     return new MyPrototype(myBean);
   }
}

BeanFactory 应该在创建原型 bean 时搜索 MySingleton 类型的 bean 并将其注入方法 myPrototype

【讨论】:

    猜你喜欢
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-31
    • 2012-10-25
    • 2016-09-27
    • 1970-01-01
    相关资源
    最近更新 更多