首页 > 解决方案 > 多个 Spring Components\ 相同类型的 Bean

问题描述

我有一个基类Foo和多个继承自它的类。

直到现在我都需要每一个

所以我只是做了:

@Autowired 
private List<Foo> foos;

但是事情已经发生了变化,我想生成每种类型的多个对象(即x的实例Foo1,等的y实例Foo2

如何使用 Spring Boot 做到这一点?

注意:我真的不需要将其填充到列表中。

编辑:

我将进一步解释我面临的问题。每个类代表一种任务(It's a Runnable)。每个任务都有固定数量的线程。我想为每个线程实例化一个新对象。

所以我的问题是:如何利用 Spring 来解决这个问题?回到当我每项任务只需要一个实例时,这很容易(参见List<Foo>示例)

标签: javaspring-boot

解决方案


如果我正确理解您的问题,您需要多个 bean 实例,那么您需要将该 bean 的范围声明为 PROTOTYPE,因为默认情况下 spring 将它们设为 SINGLETON(每个容器一个 bean)。要制作您的 bean PROTOTYPE,您只需将此注释添加@Scope("prototype")到您的类中。这是一些深入的参考:https ://docs.spring.io/spring/docs/3.0.0.M3/reference/html/ch04s04.html

高温高压


推荐阅读