我希望(如果可能的话)使用@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
注释。否则豆子不会被填充。
答案 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
,以匹配设置者名称