Spring Boot和@ConfigurationProperties

时间:2015-06-09 15:43:30

标签: java spring spring-boot

我希望(如果可能的话)使用@ConfigurationProperties来创建动态大小的POJO列表。请告知是否可以。我的想法是如下所示(省略了args构造函数/ 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:我在@EnableConfigurationProperties

上使用@Configuration

注意:一旦解决了,我认为人们可能会觉得有必要在Spring创建@EnableConfigurationProperties组件之前找到并处理@ConfigurationProperties注释。否则豆子不会被填充。

1 个答案:

答案 0 :(得分:3)

属性条目存在一个小问题,应该如下:

X

请注意my.items[0].prop1=a my.items[0].prop2=b my.items[1].prop1=a my.items[1].prop2=b vs items,以匹配设置者名称