Spring boot 参数分组校验
项目源码下载:demo-boot-group-validation.zip 访问密码:9987
maven主要依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
提示:低版本的spring boot 无需单独引入spring-boot-starter-validation
演示数据模型:
@Data
public class UserInfo {
@NotNull(groups = {Update.class},message = "请填写id信息")
private Long id;
@NotEmpty(groups = {Add.class,Update.class},message = "请填写用户名称")
private String name;
}
controller编写:
@PostMapping("/test/add")
public Object add(@RequestBody @Validated(value = {Add.class})UserInfo userInfo){
return userInfo;
}
@PostMapping("/test/update")
public Object update(@RequestBody @Validated(value = {Update.class})UserInfo userInfo){
return userInfo;
}
运行项目,然后通过postman提交数据测试
可以看到用户名称校验的错误信息,因为新增我们只校验了Add.class分组,所以当前的结果是正常的。
调用更新接口,校验了更新组的字段,可以看到 id和name字段都参与了校验,验证了分组校验的成功。
当填入正确数据,返回的结果是正常的,没有走校验错误返回
http://blog.xqlee.com/article/1040.html