Я хочу загрузить вложенное свойство List в JAVA POJO
Я загружаю свойства из yml, используя аннотацию ConfigurationProperties для класса 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




В соответствии с руководство вы определяете элементы своего списка как:
list:
- a
- b
- c
Ну, это не синтаксис списка YAML:
list: a,b,c
Это всего лишь одна строка a,b,c.
Если вы хотите использовать список с разделителями-запятыми, вы можете проанализировать его после загрузки.
Spring делает что-то подобное с некоторыми своими свойствами, как в этом примере со свойствами RabbitMQ. addresses разделены запятыми, а функция parseAddresses() разбивает строку после загрузки как часть метода установки этого члена.
В противном случае используйте синтаксис списка YAML.
prop:
- user: alpha
list:
- a
- b
- c
- user: beta
list:
- x
- y
- z
Синтаксис, заданный @jbx, верен для вложенных контейнеров. У вас должно быть что-то не так в именовании, вложении или предоставлении средств доступа для членов.
Даже после того, как это было дано таким образом, это не работает. Он не может подобрать вложенный список и инициализировать его.