在開發JAVA服務器端代碼時,我們會遇到對外部傳輸的參數合法性的驗證,hibernate-validator提供了壹些常用的參數驗證註釋,我們可以使用。
在1.maven中引入hibernate-validator對應的jar
& lt依賴性& gt
& ltgroupId & gtorg.hibernate & lt/groupId & gt;
& ltartifactId & gthibernate驗證器& lt/artifact id & gt;
& lt版本& gt4.3.1.最終& lt/version & gt;
& lt/dependency & gt;
2.定義模型中要驗證的字段(即字段不能為空,最大長度為14):
導入javax . validation . constraints . size;
import org . hibernate . validator . constraints . not empty;
公共類PayRequestDto {
/**
*付款完成時間
**/
@ NotEmpty(message =“付款完成時間不能為空“)
@ Size(max = 14,message=“付款完成時間不能超過{max}位數“)
私有字符串支付時間;
公共字符串getPayTime(){
返回工資時間;
}
公共void setPayTime(字符串支付時間){
this . pay time = pay time;
}
}
3.定義驗證工具類:
導入Java . util . set;
導入javax . validation . constraint violation;
導入javax . validation . validation;
導入javax . validation . validator;
導入org . hibernate . validator . hibernate validator;
import com . atai . framework . lang . app exception;
公共類驗證工具{
/**
*使用hibernate的註釋進行驗證。
*
*/
私有靜態驗證器驗證器=驗證
。by provider(hibernate validator . class)。配置()。無故障(真)。buildValidatorFactory()。get validator();
/**
*功能描述:
*《註釋驗證參數》
*
* @param obj
* @參見【相關類/方法】(可選)
* @自【產品/模塊版本】起(可選)
*/
公共靜態& ltT & gt無效驗證(對象){
設置& ltconstraint違例& ltT & gt& gtconstraint violations = validator . validate(obj);
//引發測試異常
if(constraint violations . size()& gt;0) {
thrownnewappexception(“0001“,string。格式(“參數驗證失敗:% s“,違反了約束。叠代器()。下壹個()。getmessage())));
}
}
}
4.調用代碼中的工具類進行參數驗證:
validation utils . validate(request dto);
以下是hibernate-validator中壹些註釋的描述:
@AssertTrue用於布爾字段,布爾字段只能為True。
@AssertFalse該字段的值只能為False。
@CreditCardNumber對信用卡號進行粗略驗證。
@DecimalMax只能小於或等於該值。
@DecimalMin只能大於或等於該值。
@ Digits(integer =,fraction=)檢查它是壹個數字的整數、分數還是小數。
@Email檢查它是否是有效的電子郵件地址。
@未來檢查該字段中的日期是否屬於未來日期。
@ Length(min =,max=)檢查其所屬字段的長度是否介於min和max之間。它只能用於字符串。
@Max該字段的值只能小於或等於該值。
@Min該字段的值只能大於或等於該值。
@NotNull不能為空。
@NotBlank不能為空,檢查時將忽略空格。
@NotEmpty不能為空,其中Empty是指空字符串。
@Null請檢查該字段是否為空。
@ @粘貼檢查該字段的日期是過去的日期。
@ Pattern(regex =,flag=)帶註釋的元素必須符合指定的正則表達式。
@ Range(min =,max=,message=)註釋元素必須在適當的範圍內。
@ Size(min =,max=)檢查該字段的大小是否介於min和max之間,可以是字符串、數組、集合、映射等。
@URL(協議=,主機,端口)檢查它是否是有效的URL。如果協議、主機等。則URL必須滿足所提供的條件。
@Valid該註釋主要用於當字段是包含其他對象或映射或數組的集合時,或者該字段是對另壹個對象的直接引用時,因此在檢查當前對象時將檢查該字段引用的對象。