@ConfigurationProperties 和 @Value

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





posted @ 2018-07-13 15:58  liuyuchong  阅读(681)  评论(0编辑  收藏  举报