常规属性配置
在常规 Spring环境下,注入 properties文件里的需要通过@propertySource指明 properties文件的位置,然后通过@Value注入值。在 Spring Boot里,我们只需在 application.propcrties定义属性, 直接使用@Value注入即可 。
类型安全的配置
使用@Value注入每个配置在实际项目中会显得格外麻烦, 因为我们的配置通常会是许多个, 若使用上例的方式则要使用@Value注入很多次。Spring Boot还提供了基于类型安全的配置方式,通过@ConfiguratlonProperties将 properties属性和一个 Bean及其属性关联, 从而实现类型安全的配置。
在yaml文件中配置:
girl:
name: jane
age: 18
类型安全的Bean,代码如下:
@Component
@ConfigurationProperties(prefix = "girl")
public class GirlProperties {
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
通过@ConfigurationProperties加载 properties或yaml 文件内的配置,通过 prefix属性指定properties的配置的前缀, 通过location指定properties的位置,例如:
@ConfigurationProperties(prefix = "girl",locations={"classpath:config/xx.yml"})
使用的时候直接使用@Autowired注入该类即可
参考:
http://blog.didispace.com/springbootproperties/
http://www.ityouknow.com/springboot/2016/02/03/spring-boot-web.html