首页 > 解决方案 > SpringBoot 检索现有的原型 bean

问题描述

作为我的标题,有没有办法检索那些现有的原型 bean?我有一个名为“A”的原型 bean,并调用了 applicationContext.getBean() 方法 10 次以创建 10 个实例。没有引用这些实例的变量。

我尝试过但不起作用的方法:

1.自动装配A列表如下:

@autowired
List<A> as;

这只能获取我创建的最后一个实例。

  1. 如果我使用 beanFactory 来获取 bean,它只会创建一个新实例 A。

标签: spring-bootprototypespring-bean

解决方案


这些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);
    }
}

推荐阅读