在java开发过程中,通常一个对象会在多个接口进行使用,但是每个接口对参数校验的需求不一样,当遇到这种情况,我们可以采用分组校验的方式
Bean的书写如下
增加两个接口类,Add和AddFileType,在校验部分,增加groups参数配置
@Data
public class FileInfo {
@NotBlank(message = "文件id",groups = AddFileType.class)
private Integer id;
@NotBlank(message = "文件名称不能为空",groups = Add.class)
private String fileName;
@NotBlank(message = "文件类型不能为空",groups = AddFileType.class)
private List<String> fileTypes;
@NotBlank(message = "文件名称不能为空",groups = Add.class)
private String filePath;
private String fileDescribe;
/**
* 添加文件时生效
*/
public interface Add{
}
/**
* 添加文件类型时生效
*/
public interface AddFileType{
}
}
Controller的书写如下
@Validated注解加上要使用的组
@RequestMapping(value = "/add", method = RequestMethod.POST)
public void addFile(@RequestBody @Validated({FileInfo.Add.class}) FileInfo fileInfo){
//...
}
@RequestMapping(value = "/addType", method = RequestMethod.POST)
public void addType(@RequestBody @Validated({FileInfo.AddType.class}) FileInfo fileInfo){
//...
}
ok,这样就能够实现分组验证啦~
喜欢就点个赞呗