@ConfigurationProperties | @Value | |
---|---|---|
功能 | 批量注入配置文件中的属性 | 一个个指定 |
松散绑定(松散语法) | 支持 | 不支持 |
SpEL(例:#{3*6} ) | 不支持 | 支持 |
JSR303数据校验 | 支持 | 不支持 |
复杂类型封装 | 支持 | 不支持 |
yml或properties都能取到值:
应用场景选择:
只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value;
需要专门编写一个javaBean来和配置文件进行映射,使用@ConfigurationProperties
扩展:
数据校验:@Validated注解
appliaction.properties文件内容:
person.name=yang
person.age=22
person.email=1298@163.com
使用@Validated注解对邮箱进行校验
@component
@ConfigurationProperties(prefix = "person")
@Validated
public class Person{
private String name;
private Integer age;
@Email
//@Value("${person.name}")
//${key}从环境变量,配置文件中取值
private String email;
}