Файл Yaml не обрабатывается правильно с @ConfigurationProperties
Я использую Spring Boot 1.4.2 для моего небольшого проекта. Мой класс конфигурации, как показано ниже
@Component
@PropertySource("classpath:global1.yml")
@ConfigurationProperties
public class GlobalProperties {
private String name;
private List<Menu> menus = new ArrayList<>();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Menu> getMenus() {
return menus;
}
public void setMenus(List<Menu> menus) {
this.menus = menus;
}
@Override
public String toString() {
return "GlobalProperties{" +
", name='" + name + '\'' +
", menus=" + menus + '\'' +
'}';
}
}
а также global1.yml
name: "helloworld"
menus:
- title: Home
name: Home
path: /
- title: Login
name: Login
path: /login
Код был в порядке, если я не добавил список menus
в файле YAML. Но с файлом выше, я получил
Property: target.menus
Value:
Reason: Failed to convert property value of type 'java.lang.String' to required type 'java.util.List' for property 'menus'; nested exception is java.lang.IllegalStateException: Cannot convert value of type 'java.lang.String' to required type 'com.test.Menu' for property 'menus[0]': no matching editors or conversion strategy found
Плюс, если я положу все эти свойства в application.yml
, Все отлично работает Пожалуйста, объясните и помогите мне исправить это.
1 ответ
Я только что понял это. Основываясь на документе здесь: Externalized Configuration, я не могу иметь 2 файла yaml, и файлы yaml не могут быть загружены через @PropertySource
,