Свойства конфигурации Spring не найдены в yaml - PullRequest
0 голосов
/ 18 апреля 2020

Spring не может найти свойства конфигурации в файле yaml без каких-либо исключений. Рассмотрим пример:

Дано

application.yml

service:
  my:
    gifts:
      - name: 'candles'
        id: '13'

Подарок

@Data @AllArgsConstructor @NoArgsConstructor
public static class Gift {
    String name;
    String id;
}

Пример 1

Подарки в виде бобов со свойствами конфигурации

Конфигурация

@Configuration
public class MyContext {

    @Bean
    @ConfigurationProperties("service.my.gifts")
    public List<Gift> gifts() {
        return new ArrayList<>();
    }
}

Если я автоматически подключу бин gifts, то он появится со значением по умолчанию (пустой список массивов).

Пример 2

Подарки как поле внутри свойств конфигурации bean

@Data
@Configuration
@ConfigurationProperties("service.my")
public class MyServiceProperties {
    private List<Gift> gifts = new ArrayList<>();
}

Все работает нормально. Поле gifts содержит подарок с id 13.

Может кто-нибудь объяснить, пожалуйста, разницу между этими двумя примерами. Почему Пример 1 не сработал?

Spring boot version 1.5.8. ВЫПУСК. Более того, Пример 1 работает отлично (так же, как пример 2) в другом проекте с весенней загрузкой версии 2.1.8.RELEASE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...