Spring 配置 - 需要自动装配 bean?

Spring configuration - Autowired bean required?

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

单例class:

public class MySingleton {
}

原型class:

public class MyPrototype {

    private MySingleton b;

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

配置class1:

@Configuration
public class ConfigClassA {

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

}

配置class2:

@Configuration
public class ConfigClassB {

   @Autowired
   public MySingleton mb;

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

}

试试这个:

@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.