springboot从配置文件注入属性值的两种方式
1. 使用 @ConfigurationProperties 和 @Configuration
其中,
@Configuration 感觉类似Compnent Service Controller Respository 等注解类似,注入bean的同时起个标识的作用,声明这个类是个配置类。主要用于将配置和其他应用解耦。
@ConfigurationProperties 默认读取配置文件的一级属性
@ConfigurationProperties("***") 和
@ConfigurationProperties(prefix="**")等价,可以根绝前缀读取各级属性
例如,配置文件(yml格式)为
configureFile:
name: yin
age: 28
通过如下方式即可注入属性。
@Configuration
@ConfigurationProperties("configureFile")
@Setter
@Getter
public class ConfigureFile {
private String name;
private int age;
}
2. 通过@Value注入
如下
@Component
public class ValueTest {
@Value("${value}")
private String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
有时候,我们可能需要注入静态属性,就需要做响应的修改了:
@Component
public class ValueTest {
private static String value;
public String getValue() {
return value;
}
@Value("${value}") //static 类型通过set方法注入
public void setValue(String value) {
ValueTest.value = value;
}
}