我想将嵌套的List属性加载到Java POJO中
我正在使用ConfigurationProperties
注解从yml上的类A加载属性。我的列表的类型为B。此B对象具有自己的LIST属性。但是yml属性未按预期加载。
@ConfigurationProperties(prefix="prop")
public class A{
List<B> b = new ArrayList<>();
//getters and setters ......
}
public class B{
String user; //This property gets loaded.
List<String> list = new ArrayList<>(); //However this list is still empty
//getters and setters ......
}
我在application.yml
中的财产如下所示。
prop:
-
user: alpha
list: a,b,c
-
user: beta
list: x,y,z
答案 0 :(得分:1)
这不是列表的YAML语法:
list: a,b,c
那只是一个字符串a,b,c
。
如果您希望使用逗号分隔列表,则可以在加载后对其进行解析。
Spring使用自己的某些属性执行类似的操作,例如在此示例中使用RabbitMQ属性。 addresses
以逗号分隔,函数parseAddresses()
在加载后拆分字符串,作为该成员的setter方法的一部分。
否则,请使用YAML列表语法。
prop:
- user: alpha
list:
- a
- b
- c
- user: beta
list:
- x
- y
- z
答案 1 :(得分:0)
根据manual,您将列表项定义为:
list:
- a
- b
- c