1. 程式人生 > >六、java專案常用工具類之校驗引數工具類

六、java專案常用工具類之校驗引數工具類

專案環境:

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

宣告:此專案僅是拋磚引玉,內容不是特別完善。如有轉載,請註明此處。