关于参数校验

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于参数校验相关的知识,希望对你有一定的参考价值。

参考技术A

1.使用校验注解:
在Java中提供了一系列的校验方式,它这些校验方式在“javax.validation.constraints”包中,提供了如@Email,@NotNull等注解。

在非空处理方式上提供了@NotNull,@Blank和@NotEmpty
(1)@NotNull

The annotated element must not be null. Accepts any type.
注解元素禁止为null,能够接收任何类型

(2)@NotEmpty

the annotated element must not be null nor empty.

该注解修饰的字段不能为null或""

Supported types are:

支持以下几种类型

CharSequence (length of character sequence is evaluated)

字符序列(字符序列长度的计算)

Collection (collection size is evaluated)
集合长度的计算

Map (map size is evaluated)
map长度的计算

Array (array length is evaluated)
数组长度的计算

(3)@NotBlank

The annotated element must not be null and must contain at least one non-whitespace character. Accepts CharSequence.
该注解不能为null,并且至少包含一个非空白字符。接收字符序列。
JSR303常用注解: https://blog.csdn.net/w306026355/article/details/85094270
2:在请求方法中,使用校验注解@Valid,开启校验
3:在校验的Bean实体之后,紧跟一个BindResult,就可以获取到校验的结果。拿到校验的结果,就可以自定义的封装。

4.分组校验
一个实体极可能多个接口使用,在不同接口的业务规则中,同一个参数的校验也可能拥有不同的校验规则,此时就需要进行分组的校验.
4.1:建立分组标志
“javax.validation.constraints”包中的校验注解,都有一个属性为groups,groups的值为一个数组,我们可以在公共模块中建立空接口作为分组标志,如:AddGroup,EditGroup
使用方法示例:

4.2:在校验的接口中使用更精确的@Validated(xxx.class)注解来开启参数校验,取代原来的@Valid注解,标明分组

5.自定义校验注解以及校验器
https://www.bilibili.com/video/BV1np4y1C7Yf?p=70

以上是关于关于参数校验的主要内容,如果未能解决你的问题,请参考以下文章

关于EGG项目添加Joi参数校验解决方案

JAVA关于列表查询参数校验的问题

Sqlserver关于校验和_备份还原的CHECKSUM

关于spring mvc 请求参数校验使用中的坑 。 maven 生命周期,线程池杂识

第5章—构建Spring Web应用程序—关于spring中的validate注解后台校验的解析

关于接口测试用例设计的一些思考