Springboot @ConfigurationProperties вложенные свойства yaml не загружаются - PullRequest
1 голос
/ 18 марта 2019

По какой-то причине не вложенные свойства загружаются, а вложенные - нет.

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

spring:
  profile: junit
  profiles:
    include: base

Класс конфигурации:

@ConfigurationProperties(prefix = "spring")
public class MyFirstProperties {

    private String profile;
    private Profiles profiles;
    // getters and setters


    public class Profiles
    {
        private String include;
    // getters and setters
    }
}

Основной класс:

    @SpringBootApplication
    @EnableConfigurationProperties(MyFirstProperties.class)
    public class Main {
        public static void main(String... args) {
            SpringApplication.run(Main.class, args);
        }
}

Когда я внедряю класс конфигурации в свой контроллер и вызываю getter для не вложенного свойства, он возвращает его значение. Но получатель для вложенного свойства возвращает ноль.

Аннотирующий внутренний класс с ConfigurationProperties и его собственным префиксом, похоже, не работает. Я что-то упустил?

1 Ответ

2 голосов
/ 18 марта 2019

Вам нужно создать экземпляр вашего profiles свойства

private Profiles profiles = new Profiles();

Вот и все.

Это происходит потому, что ваш внутренний class не static.
Вы не можете создать экземпляр этого типа class напрямую, но только внутри контекста включающего.

Сделайте свой class static, и вам будет хорошо идти

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