validation数据校验器

·  阅读 438

数据的校验是一个完整的web项目的必备功能之一,前端的一些js校验只能应对在门户网站上输入的数据,但是如果有人绕过浏览器直接使用某些http模拟工具向后台服务器发送一些非法数据的就会引起程序的错误甚至崩溃,例如通过服务器端发送错误的时间格式 邮箱格式等违法数据到后台数据库,所以在服务器端也有必要对新增数据进行数据校验。

最近通过网上视频了解并学习了spring的validation数据校验器,下面我将演示一下validation数据校验器的代码实现,有兴趣的小伙伴可以了解一下。

引入validation相关jar包

  <dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>6.0.21.Final</version>
  </dependency>
  <!-- validator 数据校验 结束 -->
复制代码

相关代码


import com.zhoukai.common.Constant;
import com.zhoukai.exception.BussiException;

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

/**
 * @Description 数据校验器
 * @Author Mr.ZHOU
 * @Date Created in 2021/5/9 12:59
 */
public class ValidatorUtil {
    private final static Validator validator;
    /**
     * 构建校验器
     */
    static {
        validator = Validation.buildDefaultValidatorFactory().getValidator();
    }

    /**
     * 进行数据校验
     * @param param
     */
    public static void validata(Object param){
        /**
         * 进行具体的数据校验
         * 如果校验通过 则返回的set集合为空
         * 如果数据校验不通过 则将错误的提示信息放在set集合中
         */
        Set<ConstraintViolation<Object>> errors = validator.validate(param);
        //遍历异常原因
        if (errors != null){
            for (ConstraintViolation<Object> error : errors) {
                String message = error.getMessage();//获取校验不通过的原因
                //Constant.VALIDETOR_ERROR_CODE是我自己自定义的异常
                throw new BussiException(Constant.VALIDETOR_ERROR_CODE,message);
            }
        }

    }
}
复制代码
分类:
后端
标签:
收藏成功!
已添加到「」, 点击更改