开发过程中常常需要手动校验入参 或者 需要校验入参值是否满足要求。
import org.hibernate.validator.HibernateValidator;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import java.util.Set;
/**
* @description 入参校验工具类
* @date 2021/1/8 15:50
*/
public class ValidationUtils {
private static Validator validator = Validation
.byProvider(HibernateValidator.class).configure().failFast(false).buildValidatorFactory().getValidator();
public static <T> void validate(T obj) {
Set<ConstraintViolation<T>> constraintViolations = validator.validate(obj);
// 抛出检验异常
if (constraintViolations.size() > 0) {
throw new BusinessException(constraintViolations.iterator().next().getMessage());
}
}
}
自定义参数值校验 实现
ConstraintValidator 接口即可,相关实现可网络搜索