Spring Boot學習筆記系列之Spring Boot配置文件屬性值校驗
本篇主要介紹Spring Boot 配置文件中屬性值的校驗,之前已經介紹了Spring Boot 讀取配置文件的詳細方法,這裡就不再重複描述了.
屬性校驗
在之前的默認配置文件中添加email這個屬性,值填寫為錯誤的email格式,如下所示:
blog:
name:老貓碼坊
author:老貓
massage:${blog.name}的作者自稱是:${blog.author}
email:877066424
創建一個bean來綁定這個屬性,這裡我給它命名為:ValidateProp.java添加數據校驗Validated註解,開啟數據校驗,代碼如下所示:
@Component
@ConfigurationProperties(prefix="blog")
@Validated
public classValidateProp {
privateStringemail;
//省略getter setter
}
因為填寫的是錯誤的email格式,所以在啟動項目的時候會報錯,我把報錯的信息粘出來:
匹配屬性的鬆散性
在默認的配置文件中添加屬性值
nick-name:老貓
update_date:2018/07/19 15:27:30
在bean中配置的屬性名為:
privateStringnickName;
privateStringupdateDate;
//省略getter setter
可以看到nickName和createdDate在yml配置文件中,但是對應參數分別有劃線和下劃線.
現在我們在controller中獲取這些配置屬性,測試一下是否可以映射在相應的欄位中.
@RequestMapping("/validate")
publicStringvalidate() {
returnvalidateProp.toString();
}
訪問相應的頁面地址,列印的信息如下:ValidateProp
解析成功所以Spring Boot 的配置文件支持鬆散匹配屬性
但是@ConfigurationProperties註解是不支持SpEL表達式;
總結
配置文件取值小結
1
ConfigurationProperties註解支持批量注入,而Value註解適合單個注入;
2
ConfigurationProperties註解支持數據校驗,而Value註解不支持;
3
ConfigurationProperties註解支持鬆散匹配屬性,而Value註解必須嚴格匹配屬性;
4
ConfigurationProperties不支持強大的SpEL表達式,而Value支持;
完
TAG:老貓碼坊 |