zoukankan      html  css  js  c++  java
  • 手动调用hibernate的参数校验器和springboot参数校验器 验证

    package com.cmb.om;
     
    import com.xx.xx.bean.dto.ApplyRcdSelectDtoX1;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
     
    import javax.validation.ConstraintViolation;
    import javax.validation.Validation;
    import javax.validation.Validator;
    import javax.validation.ValidatorFactory;
    import java.util.Set;
     
    /**
     * @Title SelfCallValid
     * @Package SelfCallValid
     * @Description
     * @Date 2020/6/8 15:51
     * @Version 1.0
     * @Copyright IT802482
     */
    @RunWith(SpringRunner.class)
    @SpringBootTest(classes = SpringBootApp.class)
    public class SelfCallValid {
     
     
        @Autowired
        private Validator validator;
     
        /**
         * 手动调用hibernate校验器
         */
        @Test
        public void test(){
     
            XXXDto foo = new XXXDto();
            ValidatorFactory vf = Validation.buildDefaultValidatorFactory();
            Validator validator = vf.getValidator();
            Set<ConstraintViolation<XXXDto>> set = validator.validate(foo);
            if(set.size()>0){
                System.out.println("校验不通过");
            }else{
                System.out.println("校验通过");
            }
            for (ConstraintViolation<XXXDto> constraintViolation : set) {
                System.out.println("原因:"+constraintViolation.getMessage());
            }
        }
     
        /**
         * 手动调用springboot封装后的校验器
         */
        @Test
        public void testSpringbootValid(){
            XXXDto foo = new XXXDto();
            Set<ConstraintViolation<XXXDto>> set = validator.validate(foo);
            if(set.size()>0){
                System.out.println("校验不通过");
            }else{
                System.out.println("校验通过");
            }
            for (ConstraintViolation<XXXDto> constraintViolation : set) {
                System.out.println("原因:"+constraintViolation.getMessage());
            }
        }
    }

      dto:

    1
    2
    3
    4
    5
    @Data
    public class XXXDto{
        @NotBlank(message = "taskNo不允许为空")
        private String taskNo;
    }
  • 相关阅读:
    什么是chaosmonkey?
    缓存中存在的三个问题及相关图解(图示解决方式) redis
    01 | 为什么说每个程序员都要尽早地学习并掌握设计模式相关知识?
    JMeter压测
    mysql 同步到 elasticsearch —— canal 1.1.4 demo
    流畅的python——14 可迭代的对象、迭代器和生成器
    流畅的python——11 接口:从协议到抽象基类
    流畅的python——13 正确重载运算符
    django.db.utils.OperationalError: (2026, 'SSL connection error: unknown error number')
    子线程开启后,发现主线程卡顿延迟
  • 原文地址:https://www.cnblogs.com/heihei1990/p/13910805.html
Copyright © 2011-2022 走看看