3

所以我对新@ConstructorBinding功能感到非常兴奋,但我对它如何与@ConfigurationProperties. 可以通过更改前缀来声明具有配置属性的多个相同类型的bean,例如:

    @Bean("myBean1")
    @ConfigurationProperties("foo.baz")
    MyBean myBean1(){
        return new MyBean();
    }

    @Bean("myBean2")
    @ConfigurationProperties("foo.bar")
    MyBean myBean2(){
        return new MyBean();
    }

但据我从文档中可以看出,构造函数绑定方法要求您直接注释类型,这(我相信)必然会阻止您将一个类的多个实例注入配置属性。

这是期望得到支持的东西吗?它是否已经受支持并且我已经遗漏了一些东西?我想我理论上可以将构造函数绑定的类包装在另一种类型中,但它似乎有点hack-ish,如果可能的话我宁愿避免它。

4

1 回答 1

2

正如评论中所说,没有任何机制可以创建@ConfigurationProperties组件的多个实例。我发现只有一种解决方法@ConstructorBinding- 对于类似的属性,我创建了不同的类,这些类继承了基本属性类并定义了自己的构造函数。我认为创建一个简单的类和构造函数不会花费太多的工作时间(尤其是如果您使用 IDE)。

于 2020-06-11T13:50:39.043 回答