繁体   English   中英

Spring Boot对象的属性

[英]Spring boot properties to object

我有以下配置

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”)private JobConfigProperties jobXConfig; @LoadPropertiesAsObject(prefix =“ job.y”)private JobConfigProperties jobYConfig;

@ConfigurationProperties无法正常工作,因为它必须附加到类或方法上

稍后编辑:看来@ConfigurationProperties可以应用于方法。 我将尝试一下,然后返回结果。

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

@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

希望能帮助到你...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM