@PropertySource注解的使用及读取自定义的properties文件
- 一、@PropertySource注解
- 二、第一种用法
- 三、第二种用法
一、@PropertySource注解
若要读取项目yml或者properties配置文件里的属性,可以使用@ConfigurationProperties注解;
如果我们想读取自定义的properties文件,可以使用@PropertySource注解。此注解有一个value属性,@PropertySource(value = “classpath:/config/”),其值为自定义配置文件的路径。
二、第一种用法
@Component、@PropertySource和@ConfigurationProperties三个注解及一个实体类,可以实现读取自定义配置文件:
@Component
@PropertySource(value = "classpath:/config/")
@ConfigurationProperties(prefix = "")
public class InfSsoBean {
private String code;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public InfSsoBean() {
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
@ConfigurationProperties注解的preifx属性为properties文件的前缀,properties文件里面的属性key需为小写,且需与实体类属性保持一致。
效果:
三、第二种用法
@Configuration、@PropertySource、@Bean和@ConfigurationProperties四个注解和一个配置类,一个实体类,实现读取自定义配置文件:
配置类:
@Configuration
@PropertySource(value = "classpath:/config/")
public class SsoConfig {
@Bean
@ConfigurationProperties(prefix = "")
public InfSsoBean infSsoBean() {
return new InfSsoBean();
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
实体类:
public class InfSsoBean {
private String code;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public InfSsoBean() {
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
效果:
总结:第一种方式适合配置文件中只有一个实体类属性的情况,第二种方式适合配置文件中含有多个实体类属性的情况。