【发布时间】:2019-09-09 07:46:34
【问题描述】:
我有一些接口,例如“BeanInterface”和多个实现此接口的 Spring Bean,例如 BeanA、BeanB。在其他课程中,我得到了这个 bean 的列表:List<BeanInterface>。而我正在尝试做的是只注入到List<BeanInterface> yaml 配置中指定的 Bean。
为此,我在 yaml 中指定了要注入的 bean 名称列表。
app:
beans:
- BeanA
- BeanB
结果是 -
Property: app.beans[0]
Value:
Origin: class path resource [application-local.yaml]:86:6
Reason: No converter found capable of converting from type [java.lang.String] to type [com.myprojects.BeanInterface]
属性 BeanA、BeanB 只是 String 值,如何指定 bean 名称?
【问题讨论】:
-
你为什么要通过yaml配置动态注入一些bean?难道你只需要将所有bean注入实现BeanInterface的List
? -
我想配置哪些bean应该被注入列表。
-
好的,但是应该从外部配置动态配置吗?
-
不,不应该。只有在应用程序启动时,spring 才应该从 yaml 文件中获取配置,哪些 bean 应该注入到列表中。