JSR303校驗,配置文件優先級,多環境切換
- 一、JSR303數據校驗
- 二、配置文件優先級
- 三、多環境切換
- 一、properties多環境切換
- 二、yaml多環境切換
- ————————
- 創作不易,如覺不錯,隨手點贊,關注,收藏(* ̄︶ ̄),謝謝~~
新注解:
@Validated //數據校驗
新依賴:
<!--validation啟動器--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency>
一、JSR303數據校驗
1、導入需要的依賴
2、Springboot中可以用@validated來校驗數據,如果數據異常則會統一拋出異常,方便異常中心統一處理。我們這里來寫個注解讓我們的name只能支持Email格式;
3、我們yaml的數據
4、運行看一下,我們發現他報錯了,因為我們的name不是郵箱格式,報了一個郵箱格式錯誤,那是因為,我們設置了 message=“郵箱格式錯誤”
5、一大堆注解放在這里
除了Email注解,還有其他的很多注解
@NotNull(message="名字不能為空")
private String userName;
@Max(value=120,message="年齡最大不能查過120")
private int age;
@Email(message="郵箱格式錯誤")
private String email;空檢查
@Null 驗證對象是否為null
@NotNull 驗證對象是否不為null, 無法查檢長度為0的字符串
@NotBlank 檢查約束字符串是不是Null還有被Trim的長度是否大于0,只對字符串,且會去掉前后空格.
@NotEmpty 檢查約束元素是否為NULL或者是EMPTY.Booelan檢查
@AssertTrue 驗證 Boolean 對象是否為 true
@AssertFalse 驗證 Boolean 對象是否為 false 長度檢查
@Size(min=, max=) 驗證對象(Array,Collection,Map,String)長度是否在給定的范圍之內
@Length(min=, max=) string is between min and max included.日期檢查
@Past 驗證 Date 和 Calendar 對象是否在當前時間之前
@Future 驗證 Date 和 Calendar 對象是否在當前時間之后
@Pattern 驗證 String 對象是否符合正則表達式的規則.......等等
除此以外,我們還可以自定義一些數據校驗規則
二、配置文件優先級
- file: ./ config/
- file:./
- classpath: /config/
- classpath: /
1、file: ./ config/ , 第一個位置創建yaml
2、file:./ , 第二個位置創建yaml
3、classpath: /config/ , 第三個位置創建yaml
4、classpath: / , 第三個位置創建yaml (也就是默認環境了)
5、我們啟動一個個測試一下,得出優先級:
項目打成jar包之后,與jar包同目錄的是優先級最高的
可以放在jar包所在的同級別目錄
三、多環境切換
一、properties多環境切換
1、創建三個properties配置文件,分別設置他們的端口
2、我們運行的時候,是走默認的8080端口,那么我們實際開發會有好幾環境,怎么切換環境呢?很簡單
spring.profiles.active 設置
二、yaml多環境切換
1、創建一個yaml文件,看內容,等同于上面 properties 的三個文件
以—斜線為分割,三個環境
2、默認是選擇第一個,也就是8081的環境,那怎么選擇其他的呢?
看圖
我們發現 profiles 有一條刪除線,那是因為Springboot已經不推薦這樣使用了