前言
@validated 注解的主要目的是启用和利用 spring 的验证框架,它可以用于类上也可以用于方法参数上。用于类上时,表示该类中的所有方法参数都需要通过验证框架进行验证;用于方法参数上时,则仅表示该参数需要被验证。选择哪种方式取决于具体的业务需求和个人偏好。
步骤
1、引入依赖,这是 spring 用来实现数据验证的基础库
<dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-validation</artifactid> </dependency>
2、然后我们将注解@validated放在类上开启验证功能,将注解@valid放在参数实体上代表对实体进行校验,例如
@restcontroller @requestmapping("/test") @validated public class testcontroller { @postmapping() public r test(@valid @requestbody testdto dto){ return r.ok("响应成功"); } }
3、然后我们在请求体中随时用如下 注解即可通过框架自动进行验证,我这里是使用统一异常捕捉进行全局异常情况拦截,有关统一异常封装,大家可以关注我看我另一篇文章。
统一的参数异常捕捉
/** *处理参数校验异常 * @param e * @return */ @exceptionhandler public r handlerexception(methodargumentnotvalidexception e) { e.printstacktrace(); bindingresult bindingresult = e.getbindingresult(); return r.fail(bindingresult.getfielderrors().get(0).getdefaultmessage()); }
参数实体
import lombok.data; import javax.validation.constraints.notblank; import javax.validation.constraints.notnull; import javax.validation.constraints.size; @data public class testdto { @notblank(message = "a参数不能为空") private string a; @notnull(message = "b参数不能为null") private string b; @max(value = 10,message = "请输入正确的范围") private integer c; }
4、通过apifox工具调用测试结果如下
5、以下是常用的注解说明
注解 | 类型 | 说明 |
---|---|---|
@null | object | 校验必须为null |
@notnull | object | 校验必须不能是null,并且必须有一个非空格字符 |
@notempty | 字符串、集合、映射等类型 | 值不为空(即不为 null 且不为空字符串、空集合或空映射)。 |
@asserttrue | boolean、boolean | 参数需要为true,传null允许通过,注意,当传了0时会认为是false不通过 |
@assertfalse | boolean、boolean | 参数需要为true,传null允许通过,注意,当传了0时会认为是false允许通过 |
@max | bigdecimal、biginteger,基本数字类型及其包装类等 | 允许的最大值,null允许通过 |
@min | bigdecimal、biginteger,基本数字类型及其包装类等 | 允许的最小值,null允许通过 |
@negative | bigdecimal、biginteger,基本数字类型及其包装类等 | 数字类型的值必须小于零,null允许通过 |
@negative | bigdecimal、biginteger,基本数字类型及其包装类等 | 数字类型的值必须小于等于零,null允许通过 |
@positive | bigdecimal、biginteger,基本数字类型及其包装类等 | 数字类型的值必须大于零,null允许通过 |
@positiveorzero | bigdecimal、biginteger,基本数字类型及其包装类等 | 数字类型的值必须大于等于零,null允许通过 |
@digits(integer = 10, fraction = 2) | 字符串、bigdecimal、biginteger,基本数字类型及其包装类等 | 整数位数和小数位数限制,null允许通过 |
@pattern | 字符串 | 正则表达式匹配,null允许通过 |
@email字符串 | 字符串 | 邮箱格式校验,null允许通过 |
@size | 字符串、集合、映射等类 | 校验大小的范围,null允许通过,如 @size(min = 1, max = 3, message = “最大范围为1-3”) |
到此这篇关于springboot使用@validated处理校验的方法步骤的文章就介绍到这了,更多相关springboot @validated处理校验内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论