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;
}
}
}
希望对你有帮助