一直有个疑问,在使用@ConfigurationProperties注解作用一个配置类时,如果该配置类继承了一个父类,那么父类的那些配置字段是否可以读取配置信息。
答案是可以的,前提是父类对应字段的set方法是public。
BaseProperties.java
@Getter
@Setter
public class BaseProperties {
private String parent;
}
HdlProperties.java
@ToString
@Setter
@Getter
public class HdlProperties extends BaseProperties{
String name;
String sex;
Integer age;
}
config配置类
@Bean
@ConfigurationProperties(prefix = "hdl")
public HdlProperties createHdlProperties(){
//HdlProperties无set方法时,无法读取配置信息
return new HdlProperties();
}
application.properties配置信息
hdl.name = hdl
hdl.age = 11
hdl.sex = F
hdl.parent = hel
运行结果
对@ConfigurationProperties的具体使用方式可以参考https://blog.csdn.net/skh2015java/article/details/120141409?
为什么会用,可以参考一下@Enableconfigurationproperties:
https://blog.csdn.net/xueyijin/article/details/124853073