一、注解作用
该注解的作用主要是用来做数据校验,可以在定义的实体类的属性上,添加不同的注解来完成不同的校验规则,而在接口类中的接收数据参数中添加@Valid注解,这时实体类会开启一个个性化的校验功能
二、实体类中添加@Valid相关注解
使用@Valid相关的注解相对简单,只需要在对应的属性上添加@NotBlank、@NotNull、@Max、@Min等注解对字段进行限制
例如:
User类:
public class User{
@NotBlank(message = "姓名不为空")
private String username;
@NotBlank(message = "密码不为空")
private String password;
}
如果嵌套实体类,需要在最外层属性上添加注解
public class User{
@NotBlank(message = "姓名不为空")
private String username;
@NotBlank(message = "密码不为空")
private String password;
//嵌套必须加@Valid,否则嵌套中的验证不生效
@Valid
@NotNull(message = "用户信息不能为空")
private UserInfo userInfo;
}
UserInfo:
public class UserInfo {
@NotBlank(message = "年龄不为空")
@Max(value = 18,message = "不超过18岁")
private String age;
@NotBlank(message = "性别不为空")
private String gender;
}
三、Controller层中添加@Valid注解
需要注意的是,使用@Valid注解,请求必须是Post请求,Get请求无效!
@RestController
public class TestController {
@PostMapping("/user")
public String addUserInfo(@Valid @RequestBody User user){
return "调用成功";
}
}