@Valid注解作⽤,为什么@NotNull会失效呢
作⽤
@Valid,主要是⽤来校验绑定的参数是否符合预订的要求
⽤法:
通常⽤于controller层,⼊⼝处bean校验,如:⾮空校验
下⾯这个例⼦,就是⽤于⾮空校验
@PostMapping("/queryStoreList")
@ApiOperation(value ="查询店铺列表")
@RequireLogin
public Respon<List<HapiQueryStoreListResp>>queryStoreList(@RequestBody@Valid HapiStoreListReq request){
}
public class HapiStoreListReq implements Serializable {
private static final long rialVersionUID =1L;
@ApiModelProperty(value="城市ID",required=true,example="58")
@NotNull(message="placeId is null")
private Integer placeId;
}
当placeId是空的时候,就会直接返回notNull⾥⾯的message提⽰语,⾮常⽅便。
注意
如果只加@NotNull注解 不加@Valid是不会⽣效的。@Valid起⼀个表⽰该类受到校验的作⽤
更多⽤法
加注解在bean层就可以了。
@Null 限制只能为null
@NotNull 限制必须不为null
@AsrtFal 限制必须为fal
@AsrtTrue 限制必须为true
@DecimalMax(value) 限制必须为⼀个不⼤于指定值的数字
@DecimalMin(value) 限制必须为⼀个不⼩于指定值的数字
@Digits(integer,fraction) 限制必须为⼀个⼩数,且整数部分的位数不能超过integer,⼩数部分的位数不能超过fraction
@Future 限制必须是⼀个将来的⽇期
@Max(value) 限制必须为⼀个不⼤于指定值的数字
@Min(value) 限制必须为⼀个不⼩于指定值的数字
@Past 限制必须是⼀个过去的⽇期
@Pattern(value) 限制必须符合指定的正则表达式
@Size(max,min) 限制字符长度必须在min到max之间
@Past 验证注解的元素值(⽇期类型)⽐当前时间早
@NotEmpty 验证注解的元素值不为null且不为空(字符串长度不为0、集合⼤⼩不为0)
@NotBlank 验证注解的元素值不为空(不为null、去除⾸位空格后长度为0),不同于@NotEmpty,@NotBlank只应⽤于字符串且在⽐较时会去除字符串的空格
@Email 验证注解的元素值是Email,也可以通过正则表达式和flag指定⾃定义的email格式