1、@PropertiesSource注解
这是Spring中的注解,用于读取属性文件,默认读取classpath下的文件。
如在classpath路径下的a.properties中:
desc="is a property"
通过Value注解可以去到属性:
@Component
@PropertySource("classpath:a.properties")
public class Config {
@Value("${desc}")
String desc;
public void print(){
System.out.println(desc);
}
}
也可以通过@PropertiesSources注解一次读取多个配置文件。
2、@ConfigurationProperties注解
这是SpringBoot中的注解,使用这个注解需要一个依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</dependency>
在application.yml下有以下属性:
这在Bean中其实是可以直接拿到的,因为该文件自动被SpringBoot加载。
server:
port: 8099
com:
other: "通过注解获取"
通过@Value注解是可以直接拿到属性的,如☆处直接拿到yml的数据。
而◆处不需要注解,通过@ConfigurationProperties(prefix = "com")注解拿到other数据。
当然必须要有该属性的set方法,所以这适合在JavaBean中使用。
@Component
@PropertySource("classpath:a.properties")
@ConfigurationProperties(prefix = "com")
public class Config {
@Value("${server.port}") //☆
String port;
@Value("${desc}")
String desc;
String other;//◆
public String getOther() {
return other;
}
public void setOther(String other) {
this.other = other;
}
public void print(){
System.out.println(port+desc+other);
}
}