Несколько конфигурационных деревьев для одного класса при весенней загрузке - PullRequest
0 голосов
/ 13 марта 2020

У меня есть это в Application.yaml:

  override:
    email:
      enabled: true
      value: "test@mycompany.com"
    phone:
      enabled: true
      value: "+420666666666"

Как мне сделать конфигурацию одного класса с этими значениями? Я попробовал это:

public class RecipientOverrideConfig {

    @Configuration
    @ConfigurationProperties("override.email")
    @Data
    public class EmailOverride{

        Boolean enabled;
        String value;

    }

    @Configuration
    @ConfigurationProperties("override.phone")
    @Data
    public class SmsOverride{

        Boolean enabled;
        String value;

    }
}

Но есть ли лучший способ сделать это?

1 Ответ

0 голосов
/ 13 марта 2020

Я предлагаю сделать весь класс ConfigurationProperties

@ConfigurationProperties("override")
public class RecipientOverrideProperties {
    private OverrideConfig email;
    private OverrideConfig phone;

    public class OverrideConfig {
        private Boolean enabled;
        private String value;
    }

    // getters and setters were omitted for brevity
}

, а затем автоматически связать его с вашей конфигурацией:

@Configuration
public class RecipientOverrideConfig {
    @Autowired // or even better, use constructor injection
    private RecipientOverrideProperties overrideProperties;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...