árvore de configuração múltipla para uma classe na inicialização primavera

Thomas:

eu tenho isso em Application.yaml:

  override:
    email:
      enabled: true
      value: "[email protected]"
    phone:
      enabled: true
      value: "+420666666666"

Como posso fazer uma configuração de classe única com esses valores? Eu tentei isso:

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;

    }
}

Mas há uma maneira melhor de fazer isso?

Obrigado. :)

Lino:

Sugiro fazer toda a classe uma 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
}

E então autowire que em sua configuração:

@Configuration
public class RecipientOverrideConfig {
    @Autowired // or even better, use constructor injection
    private RecipientOverrideProperties overrideProperties;
}

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=279580&siteId=1
Recomendado
Clasificación