download: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 = "testMethod")
public RespResult testMethod(@RequestBody @Validated TestParam testParam){... ...}
复制代码
@Validated 只用于对性能的开启,代表本次开启参数校验
真正的参数校验注解在要进行参数合法性校验的类中进行书写
/**
- 测试类
* - @author WeiYL
- @date 2022/7/27 16:15
*/
@Data
@ApiModel(value = “ 测试解决类 ”)
public class TestParamDTO{
/**
* 名称
*/
@ApiModelProperty(value = "隐患形容", example = "隐患形容编辑测试")
@Length(max = 512, message = "长度非法,超过 {max} 字符!")
String testName;
/**
* 形容
*/
@ApiModelProperty(value = "形容", example = "形容编辑测试")
@NotBlank(message = "形容不能为空")
@Length(max = 512, message = "长度非法,超过 {max} 字符!")
String testDescribe;
/**
* 等级
*/
@ApiModelProperty(value = "等级", example = "1")
@NotBlank(message = "等级不能为空")
@Length(min = 1, max = 1, message = "等级字符长度不为{max}")
String testGrade;
}