gpt4 book ai didi

java - Spring Boot属性到对象

转载 作者:行者123 更新时间:2023-12-02 10:27:07 26 4
gpt4 key购买 nike

我有以下配置

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

I am looking for a way to let spring boot populate those classes

@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”元素:

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

希望对你有帮助...

关于java - Spring Boot属性到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53866847/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com