六、java專案常用工具類之校驗引數工具類
阿新 • • 發佈:2019-01-08
專案環境:
jdk1.8+spring4.3.12
一、問題描述及試用場景:在專案開發中,常常需要校驗入參引數的合法性,是否為空,String型別欄位內容是否大於限定長度等等。
二、解決方案思路:
這裡建議使用hibernate的工具包,稍加封裝即可實現
三、樣例原始碼:
package org.egg.utils; import org.egg.enums.CommonErrorEnum; import org.egg.exception.CommonException; import org.hibernate.validator.HibernateValidator;import javax.validation.ConstraintViolation; import javax.validation.Validation; import javax.validation.Validator; import java.util.Set; /** * @author dataochen * @Description 通過Validator註解驗證內容是否合法 * @date: 2017/11/7 16:14 */ public class ValidationUtil { /** * 使用hibernate的註解來進行驗證 * */private static Validator validator = Validation .byProvider(HibernateValidator.class).configure().failFast(true).buildValidatorFactory().getValidator(); /** * 功能描述: <br> * 〈註解驗證引數〉 *此方法既是校驗方法 * @param obj * @see [相關類/方法](可選) * @since [產品/模組版本](可選) */ public static<T> void validate(T obj) throws CommonException { Set<ConstraintViolation<T>> constraintViolations = validator.validate(obj); // 丟擲檢驗異常 if (constraintViolations.size() > 0) { throw new CommonException(CommonErrorEnum.PARAM_NULL.getCode(), String.format("parameter validate failed:%s", constraintViolations.iterator().next().getMessage())); } } }
maven座標如下:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.3.5.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.validation/validation-api -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
jar包:http://download.csdn.net/download/hupoling/10115128
宣告:此專案僅是拋磚引玉,內容不是特別完善。如有轉載,請註明此處。