download:Spark+ClickHouse实战企业级数据仓库,进军大厂必备
【某课Spark+ClickHouse实战企业级数据仓库,进军大厂必备】验证框架主要分为两种,即分层验证与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;
}
推荐阅读
- spark|Spark内核源码深度剖析(Master主备切换机制原理剖析与源码分析)
- spark|Spark内核源码深度剖析(Master注册机制原理剖析与源码分析)
- spark|Spark内核源码深度剖析(SparkContext原理剖析与源码分析)
- spark|spark的基本工作原理和RDD
- Spark|基于Spark封装的二次开发工程edata-base,介绍
- spark|spark学习笔记(七)——sparkcore核心编程-RDD序列化/依赖关系/持久化/分区器/累加器/广播变量
- 技术干货|推荐系统-协同过滤在Spark中的实现
- mysql|大数据处理与开发课程设计——纽约出租车大数据分析
- pyspark_mllib_classifier—(SVM)