因此,我对新的@ConstructorBinding
功能感到非常兴奋,但是我对它如何与@ConfigurationProperties
交互感到疑问。可以通过更改前缀来声明具有配置属性的相同类型的多个bean,例如:
@Bean("myBean1")
@ConfigurationProperties("foo.baz")
MyBean myBean1(){
return new MyBean();
}
@Bean("myBean2")
@ConfigurationProperties("foo.bar")
MyBean myBean2(){
return new MyBean();
}
但是,据我所知,构造函数绑定方法要求您直接注释类型,(我认为)必然使您无法向一个类的多个实例注入配置属性。
这是否有望得到支持?它已经受支持了,我已经缺少了什么吗?我认为从理论上讲,我可以将构造函数绑定的类包装为另一种类型,但这似乎有点破绽,我希望尽可能避免这种情况。
答案 0 :(得分:1)
如评论中所述,没有任何机制可以创建@ConfigurationProperties
组件的多个实例。我发现@ConstructorBinding
仅有一个解决方法-对于类似的属性,我创建了不同的类,这些类继承了基础属性类并定义了自己的构造函数。我认为创建一个简单的类和构造函数不会花费太多的工作时间(尤其是在使用IDE的情况下)。