用于对添加了校验注解的对象,如果没有直接赋值而是间接解析的话,需要校验。
public class ValidatorUtil {
private static Validator validator =
((HibernateValidatorConfiguration) Validation.byProvider(HibernateValidator.class).configure()).failFast(true).buildValidatorFactory().getValidator();
/**
* 实体校验
*
* @param obj
* @throws LocalBindException
*/
public static <T> void validate(T obj) throws Exception {
Set<ConstraintViolation<T>> constraintViolations = validator.validate(obj, new Class[0]);
if (constraintViolations.size() > 0) {
ConstraintViolation<T> validateInfo = (ConstraintViolation<T>) constraintViolations.iterator().next();
// validateInfo.getMessage() 校验不通过时的信息,即message对应的值
throw new Exception(validateInfo.getMessage());
}
}
}