繁体   English   中英

对多个 Bean 使用 Spring 引导 2.2.0 的 @ConstructorBinding

[英]Using Spring Boot 2.2.0's @ConstructorBinding for multiple Beans

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM