一:兩者區別
@ConfigurationProperties | @Value | |
功能上 | 批量注入配置文件中的屬性 | 一個個指定 |
鬆散綁定(鬆散語法) | 支持(lastName和last-name都可以) | 不支持 |
SpEL | 不支持 | 支持 |
JSR303數據校驗 | 支持 | 不支持 |
複雜類型封裝 | 支持 | 不支持 |
配置文件不管是yml還是properties他們都能獲取到值
如果說,我們只是在某個業務邏輯中獲取配置文件的某個值,使用@Value
如果說,我們專門編寫一個JavaBean來配置文件進行映射,就使用@ConfigurationProperties
二:配置文件注入值數據校驗
@ConfigurationProperties(prefix = "person")
@Component
@Validated
public class Person {
@Email
//@Value("${person.lastName}")
private String lastName;
// @Value("#{22*3}")
private Integer age;
// @Value("true")
private String boss;