Java 对象的Spring启动属性

Java 对象的Spring启动属性,java,spring,spring-boot,Java,Spring,Spring Boot,我有以下配置 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 cr

我有以下配置

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”)私有作业配置属性 jobXConfig@LoadPropertiesAsObject(prefix=“job.y”)私有 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;
    }

  }

}

希望它有帮助…

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

@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;
    }

  }

}
希望对你有帮助