spring-boot - SpringBoot 检索现有的原型 bean
问题描述
作为我的标题,有没有办法检索那些现有的原型 bean?我有一个名为“A”的原型 bean,并调用了 applicationContext.getBean() 方法 10 次以创建 10 个实例。没有引用这些实例的变量。
我尝试过但不起作用的方法:
1.自动装配A列表如下:
@autowired
List<A> as;
这只能获取我创建的最后一个实例。
- 如果我使用 beanFactory 来获取 bean,它只会创建一个新实例 A。
解决方案
这些bean不会被spring容器管理,你必须自己做,所以你应该创建一个集合来存储它们,只需实现InitializingBean来存储它
public class A implements InitializingBean {
public static final List<A> STORES = new ArrayList<>();
@Override
public void afterPropertiesSet() throws Exception {
A.STORES.add(this);
}
}