比较
| @ConfigurationProperties | @Value | |
|---|---|---|
| 功能 | 批量注入配置文件中的属性 | 一个个指定 |
| 松散绑定(松散语法) | 支持 | 不支持 |
| SpEL(Spring表达式) | 不支持 | 支持 |
| JSR303数据校验 | 支持 | 不支持 |
| 复杂类型封装 | 支持 | 不支持 |
解释
属性名匹配规则(Relaxed binding)
- person.firstName:使用标准方式
- person.first-name:大写用-
- person.first_name:大写用_
- PERSON_FIRST_NAME:推荐系统属性使用这种写法
数据校验
|
总结
配置文件yml还是properties两种方式都能获取到值;
如果只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value;
如果专门编写一个JavaBean来和配置文件进行映射,可以直接使用@ConfigurationProperties;