【发布时间】: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