请求时参数校验validation

508 阅读2分钟

引入的依赖如下

<dependency>    
    <groupId>org.springframework.boot</groupId>    
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

一个后端接口大致分为四个部分组成:接口地址(url)、接口请求方式(get、post等)、请求数据(request)、响应数据(response)。一个接口一般对参数(请求数据)都会进行安全校验,参数校验的重要性自然不必多说,那么如何对参数进行校验就有讲究了。Validator可以非常方便的制定校验规则,并自动帮你完成校验。首先在入参里需要校验的字段加上注解,每个注解对应不同的校验规则

1、Validator常见的注解

@null 验证对象是否为空 

@notnull 验证对象是否为非空 

@asserttrue 验证 boolean 对象是否为 true 

@assertfalse 验证 boolean 对象是否为 false 

@min 验证 number 和 string 对象是否大等于指定的值 

@max 验证 number 和 string 对象是否小等于指定的值 

@decimalmin 验证 number 和 string 对象是否大等于指定的值,小数存在精度 @decimalmax 验证 number 和 string 对象是否小等于指定的值,小数存在精度 

@size 验证对象(array,collection,map,string)长度是否在给定的范围之内 

@digits 验证 number 和 string 的构成是否合法 

@past 验证 date 和 calendar 对象是否在当前时间之前 

@future 验证 date 和 calendar 对象是否在当前时间之后 

@pattern 验证 string 对象是否符合正则表达式的规则 

@Email 验证邮箱

2、自定义校验注解

     1、自定义一个注解

     2、采用正则表达校验ip的格式正确性

这样就完成了自定义的校验注解,将这个ip的校验加在需要校验的ip的请求参数上即可

源码字符串非空校验

源码NotBlank到此结束

3、校验注解的方式

注意:这样做会将整个错误对象相关信息都响应给前端了!

4、全局异常处理

参数校验失败会自动引发异常,不可能再去手动捕捉异常进行处理,那正好使用SpringBoot全局异常处理来达到一劳永逸的效果!

        1)自定义返回对象

        2)定义异常

        3)定义全局处理类

       4)定义全局处理相应数据类

这样就ok了,一下就是我验证返回的错误信息了