依賴
spring-boot-starter-web 版本2.x中早期依賴有 `hibernate-validator`,后被移出。
使用驗證需另外引入依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency>
或者(二選一)
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>6.1.7.Final</version> </dependency>
1.分組驗證,參數太多不想一一分組
分組的類繼承package javax.validation.groups 下的Default
2.@Valid和@Validated的區分
@Validated是@Valid 的一次封裝,是Spring提供的校驗機制使用。
@Valid不提供分組功能
@Validated不提供嵌套驗證功能。嵌套驗證需要在對應的嵌套屬性前加@Valid
@Valid和@Validated的總結區分
https://blog.csdn.net/gaojp008/article/details/80583301
https://www.cnblogs.com/guchunchao/p/9860337.html
https://blog.csdn.net/qq_27680317/article/details/79970590
3.驗證注解
限制 | 說明 |
---|---|
@Null | 限制只能為null |
@NotNull | 限制必須不為null |
@AssertFalse | 限制必須為false |
@AssertTrue | 限制必須為true |
@DecimalMax(value) | 限制必須為一個不大於指定值的數字 |
@DecimalMin(value) | 限制必須為一個不小於指定值的數字 |
@Digits(integer,fraction) | 限制必須為一個小數,且整數部分的位數不能超過integer,小數部分的位數不能超過fraction |
@Future | 限制必須是一個將來的日期 |
@Max(value) | 限制必須為一個不大於指定值的數字 |
@Min(value) | 限制必須為一個不小於指定值的數字 |
@Past | 限制必須是一個過去的日期 |
@Pattern(value) | 限制必須符合指定的正則表達式 |
@Size(max,min) | 限制字符長度必須在min到max之間 |
@Past | 驗證注解的元素值(日期類型)比當前時間早 |
@NotEmpty | 驗證注解的元素值不為null且不為空(字符串長度不為0、集合大小不為0) |
@NotBlank | 驗證注解的元素值不為空(不為null、去除首位空格后長度為0),不同於@NotEmpty,@NotBlank只應用於字符串且在比較時會去除字符串的空格 |
驗證注解的元素值是Email,也可以通過正則表達式和flag指定自定義的email格式 |
Spring Boot 參數校驗:https://www.cnblogs.com/cjsblog/p/8946768.html