hibernate validator(验证)使用教程

廖琪
2023-12-01

spring-boot-starter-web包里面有hibernate-validator包,不需要引用hibernate validator依赖。

SpringBoot引入

<!--hibernate-validator验证-->
<dependency>
<groupId>org.hibernate.validator</groupId>
<version>6.1.5.Final</version>
</dependency>

1.工具类

package com.spring.utils;


import org.hibernate.validator.HibernateValidator;

import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import java.util.Set;


/**
 * 校验
 * HibernateValidator工具类
 */

public class HibernateValidatorUtil {

    private static Validator validator = Validation.byProvider(HibernateValidator.class)
            .configure()
            .failFast(true)
            .buildValidatorFactory().getValidator();

    public static <T> boolean validator(T domain) {
        Set<ConstraintViolation<T>> violationSet = validator.validate(domain);
        if (violationSet.size() > 0) {
            System.out.println(violationSet.iterator().next().getMessage() + ",校验失败");
            return false;
        }
        return true;
    }

}

2.测试

@RestController
public class TestCntroller {

    @PassToken
    @RequestMapping(value = "/demo", method = RequestMethod.GET)
    public ValidatorBean demo3() {
        ValidatorBean bean = new ValidatorBean();
        bean.setName("hello");
//        bean.setPhone("15919460849");
        bean.setEmail("1315011569@qq.com");
        boolean validator = HibernateValidatorUtil.validator(bean);
        return validator ? bean : new ValidatorBean();
    }
}

 类似资料: