當前位置:成語大全網 - 書法字典 - 如何使用java驗證api進行參數驗證

如何使用java驗證api進行參數驗證

通過JAVA中的Hibernate驗證進行參數驗證

在開發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該註釋主要用於當字段是包含其他對象或映射或數組的集合時,或者該字段是對另壹個對象的直接引用時,因此在檢查當前對象時將檢查該字段引用的對象。