开发者社区> 问答> 正文

在Spring Boot中将多个配置树变为一类

我在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;

    }
}

但是有更好的方法吗?

问题来源:Stack Overflow

展开
收起
montos 2020-03-27 10:31:16 330 0
1 条回答
写回答
取消 提交回答
  • 我建议把全班 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;
    }
    

    回答来源:Stack Overflow

    2020-03-27 10:31:38
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多