【发布时间】:2014-12-31 12:56:14
【问题描述】:
我是 DI 的 Spring,我不使用 XML。
基于配置(例如 xml/properties 文件),我希望创建一些特定类型的 bean(确切数量由配置确定)放入我的上下文中,以便它们可以自动装配到类。
我会自动接线:@Autowired public MyClass(List<MyType> types)
我正在考虑使用带有 @Configuration 注释的类。
所以我可以这样做:
@Configuration
public MyConfigurationClass {
@Autowired
public void configure(ApplicationContext context) {
// register stuff here
}
}
...但它“感觉”不对...
实现这一点的“Spring”方式是什么?
编辑:
想象一下这段代码,其中To 和Ty 只是空的类定义。
@Configuration
public class Config {
@Bean
public Collection<Ty> tyList() {
return new ArrayList<Ty>() {{
this.add(new Ty()); // could be any number of Ty instances.
}};
}
@Bean
public To to(Collection<Ty> tylist) {
return new To();
}
}
【问题讨论】:
-
“将可变数量的类实例放入 Spring 上下文”到底是什么意思?
-
@Dodge - 我的编辑对你来说更有意义吗?
-
为什么不创建多个
@Bean方法? -
@Cheetah 如果我正确理解您的意图,请查看我的答案。
-
@SotiriosDelimanolis - 请参阅编辑...我没有明确表示 bean 计数与配置中的内容直接相关。我不知道编译时的 bean 计数。