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