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
注意 items
与 item
,以匹配 setter 名称
我想(如果可能的话)使用 @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
注意 items
与 item
,以匹配 setter 名称