@ConfigurationProperties
可以通过配置该注解到我们自己创建的类上达成取代 @Value 的作用
最终目的都是读取到配置文件中的值而已。
@ConfigurationProperties(prefix = “/xx”)
其中 prefix 指定了配置文件中的配置值得开头值
示例
配置文件中自定义值
application.yml 中
example:
name: who am i
idCard: 1213456
age: 99
sex: 13
实体类定义如下:
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "example")
public class ExampleProperties {
private String name;
private String age;
private String idCard;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getIdCard() {
return idCard;
}
public void setIdCard(String idCard) {
this.idCard = idCard;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
在 controller 或者 service 上加入该实体
实际获取:
实现思路
查了一下发现各路大神说的意思大概如下:
配置了指定注解的 @ConfigurationProperties 类会在Bean 实例化完成后执行指定动作
这个关系到这个接口下实现的方法
里面可以定义在类实例化完成后的自定义动作。
配置 @ConfigurationProperties 的类会被额外处理,根据 prefix 去找配置文件中的指定配置值并完成赋值过程