java - 多个 Spring Components\ 相同类型的 Bean
问题描述
我有一个基类Foo
和多个继承自它的类。
直到现在我都需要每一个
所以我只是做了:
@Autowired
private List<Foo> foos;
但是事情已经发生了变化,我想生成每种类型的多个对象(即x
的实例Foo1
,等的y
实例Foo2
)
如何使用 Spring Boot 做到这一点?
注意:我真的不需要将其填充到列表中。
编辑:
我将进一步解释我面临的问题。每个类代表一种任务(It's a Runnable
)。每个任务都有固定数量的线程。我想为每个线程实例化一个新对象。
所以我的问题是:如何利用 Spring 来解决这个问题?回到当我每项任务只需要一个实例时,这很容易(参见List<Foo>
示例)
解决方案
如果我正确理解您的问题,您需要多个 bean 实例,那么您需要将该 bean 的范围声明为 PROTOTYPE,因为默认情况下 spring 将它们设为 SINGLETON(每个容器一个 bean)。要制作您的 bean PROTOTYPE,您只需将此注释添加@Scope("prototype")
到您的类中。这是一些深入的参考:https ://docs.spring.io/spring/docs/3.0.0.M3/reference/html/ch04s04.html
高温高压
推荐阅读
- python - 在 Visual Studio Code (vscode) 中使用 python 远程开发打破错误/异常
- python - 如何使用elasticsearch-py默认批量和设置空参数?
- javascript - 使用正则表达式从 html 字符串中删除脚本
- openshift - 如何在 BuildConfig 中使用可选图像输入
- scala - Scala:打印一个类的二叉树
- sql-server - 如何在 SQL Server 上查看 SSIS 包
- powershell - 在构建过程中重启 Docker 容器
- lua - 如何在lua中的同一个“for”上添加一个以上的数组
- sql-server - 将具有多个选项卡的 Excel 工作表中的数据插入 SQL Server 到多个表中
- python - 运算符不存在:jsonb ~~* 未知错误