【问题标题】:Spring boot properties to objectSpring引导属性到对象
【发布时间】:2018-12-20 10:30:02
【问题描述】:

我有以下配置

job:
  x:
    cron: 0 0 0 1,16 * ?
    group: xg
    name: xn
  y:
    cron: 0 0 1 1,16 * ?
    group: yg
    name: yn

还有这样的 JAVA POJO

public class JobConfigProperties {
    private String group;
    private String name;
    private String cron;
    ...
}

我正在寻找一种让 Spring Boot 填充这些类的方法

@LoadPropertiesAsObject(prefix="job.x") 私有 JobConfigProperties 工作XConfig; @LoadPropertiesAsObject(prefix="job.y") 私有 JobConfigProperties jobYConfig;

@ConfigurationProperties 不起作用,因为它必须附加到类或方法

稍后编辑:似乎@ConfigurationProperties 可以应用于方法。我会试一试,然后回来。

【问题讨论】:

    标签: java spring spring-boot


    【解决方案1】:

    您可以在配置类中通过映射添加动态属性。键必须是字符串(属性键),值可以是具有多个变量的复杂类。

    @Component
    @ConfigurationProperties("job")
    public class JobConfigProperties {
    
      private Map<String, Intern> values;
    
      public Map<String, Intern> getValues() {
        return values;
      }
      public void setValues(Map<String, Intern> values) {
        this.values = values;
      }
    
      public static class Intern {
    
        private String cron;
        private String group;
        private String name;
    
        public String getCron() {
          return cron;
        }
    
        public void setCron(String cron) {
          this.cron = cron;
        }
    
        public String getGroup() {
          return group;
        }
    
        public void setGroup(String group) {
          this.group = group;
        }
    
        public String getName() {
          return name;
        }
    
        public void setName(String name) {
          this.name = name;
        }
    
      }
    
    }
    

    在您的示例中,您必须在“工作”和动态变量之间放置一个“值”元素:

    job:
      values: 
        x:
          cron: 0 0 0 1,16 * ?
          group: xg
          name: xn
        y:
          cron: 0 0 1 1,16 * ?
          group: yg
          name: yn
    

    希望对你有帮助...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-09
      • 1970-01-01
      • 2020-11-02
      • 2019-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-27
      相关资源
      最近更新 更多