首先看下下面的文章,个人认为ibm上的文章质量相当高
https://www.ibm.com/developerworks/cn/java/j-lo-jsr303/
https://www.jianshu.com/p/559aff434a08
看完上面的文章之后我们进入springboot的验证,看下面的列子
@GetMapping("/test2")
public String test2(@NotBlank(message = "name 不能为空") @Length(min = 2, max = 10, message = "name 长度必须在 {min} - {max} 之间")String name){
return "success";
}
现在我们请求http://127.0.0.1:8080/home/test2
发现压根就没有验证,这是因为没有东西去触发这些验证, 所以我们必须加上 @Validated注解, 如果我们的验证注解直接写在参数里面,@Validated必须加在类上
image.png
image.png
如果是我们用一个专门的业务对象来封装参数, 加上验证会是什么样呢
@GetMapping("/test3")
public String test3(@Validated UserDto userDto){
return "success";
}
image.png
如果参数是类对象的话需要直接将@Validated 加在参数前面,加在类上是不会起作用的
网友评论