download:体系课-Java工程师2022版|完结无密
验证框架主要分为两种,即分层验证与JavaBean验证
分层验证模型
传统的校验模式,即每一层都添加数据验证。但是其验证逻辑重复性大,会出现冗余代码过多的情况
文章图片
JavaBean验证
JavaBean验证模式指向前端接收数据时,在JavaBean上做数据校验。其校验逻辑无需写在其他层中
文章图片
Bean Validation
Bean Validation 为 JavaBean 验证定义了相应的元数据模型和API。
---维基百科
分类限制说明空/非空检查@NULL限制只能为NULL@NotNull限制必须不为NULL@NotNull验证注解的元素值不为Null且不为空(字符串长度不为0,集合大小不为0)@NotBlack验证注解的元素值不为空(不为Null,去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格Boolean值检查@AssertFalse限制必须为False@AssertTrue限制必须为True长度检查@Size(max,min)限制字符长度必须在min到max之间@Leanth限制字符长度必须在min到max之间日期检查@Future限制日期为当前时间之后@FutureOrPresent限制日期为当前时间或之后@Past限制日期为当前时间之前@PastOrPresent限制日期为当前时间或之前数值检查@Max(Value)限制必须为一个不大于指定值的数字@Min(Value)限制必须为一个不小于指定值的数字@DecimalMin(value)限制必须为一个不小于指定值的数字@DecimalMax(value)限制必须为一个不小于指定值的数字@Digits(integer,fraction)限制必须为小数,且整数部分的位数不能超过Integer,小数部分的位数不能超过fraction@Negative限制必须为负整数@NegativeOrZero(value)限制必须为负整数或零@Positive(value)限制必须为正整数@PositiveOrZero(value)限制必须为正整数或零其他检查@Pattern(Value)限制必须符合指定的正则表达式@Email限制必须为email格式
@Validated用于Controller层向前端接收参数时,对参数合法性进行校验的开启
@PostMapping("/testMethod")
@ApiOperation(value = "https://www.it610.com/article/testMethod")
public RespResult testMethod(@RequestBody @Validated TestParam testParam){
... ...
}
复制代码
@Validated只用于对功能的开启,代表本次开启参数校验
真正的参数校验注解在要进行参数合法性校验的类中进行书写
/**
- 测试类
* - @author WeiYL
- @date 2022/7/27 16:15
*/
@ApiModel(value = "https://www.it610.com/article/测试处理类")
public class TestParamDTO{
/**
* 名称
*/
@ApiModelProperty(value = "https://www.it610.com/article/隐患描述", example = "隐患描述编辑测试")
@Length(max = 512, message = "长度非法,超过{max}字符!")
String testName;
/**
* 描述
*/
@ApiModelProperty(value = "https://www.it610.com/article/描述", example = "描述编辑测试")
@NotBlank(message = "描述不能为空")
@Length(max = 512, message = "长度非法,超过{max}字符!")
String testDescribe;
/**
* 等级
*/
@ApiModelProperty(value = "https://www.it610.com/article/等级", example = "1")
@NotBlank(message = "等级不能为空")
@Length(min = 1, max = 1, message = "等级字符长度不为{max}")
String testGrade;
【某课体系课-Java工程师2022版】}
推荐阅读
- 图灵JAVA互联网架构师五期内置文档资料
- 微体系-多端全栈项目实战(商业级代驾全流程落地完结无密)
- vue|Vue+Electron开发跨平台桌面应用(实战)
- 面试官(int(1) 和 int(10) 有什么区别())
- docker|Docker容器之harbor私有仓库部署与管理
- Nginx 限流的天坑!!
- java|银行科技岗是程序员比较好的就业选择么()
- 大数据|首席数据官(从哪里来(到哪里去?))
- java|去银行写代码是什么体验()