Файл 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,

Другие вопросы по тегам