Java——》Hibernate Validator 参数验证

参考:
总结——》【Java】

场景:使用Hibernate Validator 进行参数验证。


Hibernate Validator有2种验证模式:

  • 普通模式
  • 快速失败返回模式,failFast:true

Hibernate Validator有 2 种验证模式:

  • 普通模式:failFast = false
  • 快速失败返回模式:failFast = true

设置验证模式 failFase 有 2 种方法:

  • failFast(Boolean.TRUE)
  • addProperty(“hibernate.validator.fail_fast”,“true”)

1、普通模式

会校验完所有的属性,然后返回所有的验证失败信息

2、快速失败返回模式

只要有一个验证失败,则返回

import com.eju.houseparent.common.model.BusinessException;
import lombok.Data;
import lombok.experimental.Accessors;
import org.hibernate.validator.HibernateValidator;

import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import javax.validation.constraints.Max;
import java.util.Set;

/**
 * @ClassName Test
 * @Description
 * @Author 小仙
 * @Version
 * @Date 2021/5/24 10:22
 */
public class Test {
    static Validator validator;

    static {
        ValidatorFactory factory = Validation.byProvider(HibernateValidator.class)
            .configure()
            .failFast(Boolean.TRUE)
//            .addProperty("hibernate.validator.fail_fast","true")
            .buildValidatorFactory();
        validator = factory.getValidator();
    }

    private static void valid(Object object, Class<?>... groups) {
        Set<ConstraintViolation<Object>> validate = validator.validate(object, groups);
        if (!validate.isEmpty()) {
            for (ConstraintViolation<Object> v : validate) {
                System.out.println(String.format("%s:%s", v.getPropertyPath(), v.getMessage()));
                throw new BusinessException(0, String.format("%s:%s", v.getPropertyPath(), v.getMessage()));
            }
        }
    }

    public static void main(String[] args) {
        Student student = new Student().setName("小明").setAge(12).setSex("男");
        valid(student);
    }
}

@Data
@Accessors(chain = true)
class Student {
    @Max(1)
    private Integer age;
    private String sex;
    private String name;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值