我的spring-boot项目中下面有一个属性类。
@Component
@ConfigurationProperties(prefix = "myprefix")
public class MyProperties {
private String property1;
private String property2;
// getter/setter
}
现在,我想在
property1
的application.properties文件中将默认值设置为其他属性。与下面的示例使用@Value相似@Value("${myprefix.property1:${somepropety}}")
private String property1;
我知道我们可以分配静态值,就像下面的示例一样,其中
property
的默认值是“default value”,@Component
@ConfigurationProperties(prefix = "myprefix")
public class MyProperties {
private String property1 = "default value"; // if it's static value
private String property2;
// getter/setter
}
在我的默认值是另一个属性的情况下,如何在Spring Boot中使用@ConfigurationProperties类(而不是typesafe配置属性)来执行此操作?
最佳答案
检查是否在MyProperties类中使用@PostContruct设置了property1。如果不是,则可以将其分配给另一个属性。
@PostConstruct
public void init() {
if(property1==null) {
property1 = //whatever you want
}
}