Spring 引导和@ConfigurationProperties

Spring Boot and @ConfigurationProperties

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

属性 文件:

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

注意:一旦解决我虽然人们可能会发现必须在具有 @ConfigurationProperties 的组件之前找到和处理 @EnableConfigurationProperties 注释是有用的由 spring 创建。否则将不会填充 bean。

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

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

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

注意 itemsitem,以匹配 setter 名称