Hibernate Validator註解大全
阿新 • • 發佈:2019-02-19
敬請關注部落格,後期不斷更新優質博文,謝謝
hibernate Validator 是 Bean Validation 的參考實現 。Hibernate Validator 提供了 JSR 303 規範中所有內建 constraint 的實現,除此之外還有一些附加的 constraint。
在日常開發中,Hibernate Validator經常用來驗證bean的欄位,基於註解,方便快捷高效。
1. Bean Validation 中內建的 constraint
註解 作用
@Valid | 被註釋的元素是一個物件,需要檢查此物件的所有欄位值 |
---|---|
@Null | 被註釋的元素必須為 null |
@NotNull | 被註釋的元素必須不為 null |
@AssertTrue | 被註釋的元素必須為 true |
@AssertFalse | 被註釋的元素必須為 false |
@Min(value) | 被註釋的元素必須是一個數字,其值必須大於等於指定的最小值 |
@Max(value) | 被註釋的元素必須是一個數字,其值必須小於等於指定的最大值 |
@DecimalMin(value) | 被註釋的元素必須是一個數字,其值必須大於等於指定的最小值 |
@DecimalMax(value) | 被註釋的元素必須是一個數字,其值必須小於等於指定的最大值 |
@Size(max, min) | 被註釋的元素的大小必須在指定的範圍內 |
@Digits (integer, fraction) | 被註釋的元素必須是一個數字,其值必須在可接受的範圍內 |
@Past | 被註釋的元素必須是一個過去的日期 |
@Future | 被註釋的元素必須是一個將來的日期 |
@Pattern(value) | 被註釋的元素必須符合指定的正則表示式 |
2. Hibernate Validator 附加的 constraint
註解 | 作用 |
---|---|
被註釋的元素必須是電子郵箱地址 | |
@Length(min=, max=) | 被註釋的字串的大小必須在指定的範圍內 |
@NotEmpty | 被註釋的字串的必須非空 |
@Range(min=, max=) | 被註釋的元素必須在合適的範圍內 |
@NotBlank | 被註釋的字串的必須非空 |
---|---|
@URL(protocol=, host=, port=, regexp=, flags=) |
被註釋的字串必須是一個有效的url |
@CreditCardNumber |
被註釋的字串必須通過Luhn校驗演算法, 銀行卡,信用卡等號碼一般都用Luhn 計算合法性 |
@ScriptAssert (lang=, script=, alias=) |
要有Java Scripting API 即JSR 223 ("Scripting for the JavaTM Platform")的實現 |
@SafeHtml (whitelistType=, additionalTags=) |
classpath中要有jsoup包 |
hibernate補充的註解中,最後3個不常用,可忽略。
主要區分下@NotNull @NotEmpty @NotBlank 3個註解的區別:
@NotNull 任何物件的value不能為null
@NotEmpty 集合物件的元素不為0,即集合不為空,也可以用於字串不為null
@NotBlank 只能用於字串不為null,並且字串trim()以後length要大於0
舉個使用的例子:
public class User {
@NotBlank
private String name;
//年齡要大於18歲
@Min(18)
private int age;
@Email
private String email;
//巢狀驗證
@Valid
private Product products;
... //省略getter,setter
}
public class Product {
@NotBlank
private String name;
//價格在10元-50元之間
@Range(min=10,max=50)
private int price;
... //省略getter,setter
}
歡迎加入Java猿社群