java如何在Spring中根据配置创建多个相同类型的bean?
我试图在Spring中创建指定数量的相同类型的bean
我试过:
@Bean(name = "beanList")
public List<MyBean> beanList(
@Value("${number:1}") int number
) {
List<MyBean> beanList = new ArrayList<>(number);
for (int i = 0; i < number; i++) {
beanList.add(new MyBean());
}
return beanList;
}
但这并不是人们所期望的
这样,bean“beanList”由spring上下文维护,而不是由它的元素维护,因此我不能为列表中的每个元素指定名称和init方法或destroy方法
有什么想法吗
# 1 楼答案
您可以看看BeanFactoryPostProcessor,我尝试了以下代码,它工作得很好,
Bean
s依赖于MyBean
也可以是autowire
d:因为您可以完全控制
MyBean
实例的创建过程,所以如果有必要,您可以通过构造函数传入其他bean。希望这能对您有所帮助:-)