【问题标题】:Spring Boot and @ConfigurationPropertiesSpring Boot 和 @ConfigurationProperties
【发布时间】:2015-06-09 15:43:30
【问题描述】:

我想(如果可能的话)使用@ConfigurationProperties 创建动态大小的 POJO 列表。请告知这是否可能。我的想法如下(省略无参数构造函数/getter/setter):

属性文件:

my.item[0].prop1=a
my.item[0].prop2=b

my.item[1].prop1=a
my.item[1].prop2=b

以及应该填充的bean:

@Component
@ConfigurationProperties(prefix = "my")
public class ItemsConfig {

    private List<Item> items;

    public static class Item {
        private String prop1;
        private String prop2;
    }
}

不幸的是,当我@Autowire ItemsConfig 时,列表总是null

@ConfigurationProeprties 可以实现类似的效果吗?

我找到了一种解决方法,使用BeanFactoryPostProcessor迭代属性并手动创建所有内容,使其可怕的代码:(

请指教

PS:我确实在我的@Configuration 上使用@EnableConfigurationProperties

注意:一旦解决,我可能会发现,必须在 spring 创建带有 @ConfigurationProperties 的组件之前找到并处理 @EnableConfigurationPropertiesannotation 很有用。否则 bean 将不会被填充。

【问题讨论】:

    标签: java spring spring-boot


    【解决方案1】:

    属性条目有一个小问题,应该是这样的:

    my.items[0].prop1=a
    my.items[0].prop2=b
    
    my.items[1].prop1=a
    my.items[1].prop2=b
    

    注意 itemsitem,以匹配设置器名称

    【讨论】:

    • 就这么简单吗:)让我试试!
    猜你喜欢
    • 2018-02-07
    • 2015-06-17
    • 2016-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-06
    • 2019-11-22
    相关资源
    最近更新 更多