一、说明
参数校验是开发中必不可少的一环,很多时候一些异常都是由没有进行参数校验引起的空指针异常。如果是前端直接传递过来的参数,通过@Valid注解能够很便捷的验证这些参数
二、使用
如果是spring-boot-starter 自带validation所以不需要另外的依赖了
直接在VO代码中加入Vaild注解
@Data
public class RapperBaseVO {
@NotBlank(message = "名字不能为空")
private String Name;
@Min(value = 18,message = "未满18不能当rapper")
private Integer age;
@NotEmpty(message = "必须有专辑")
private List<String> CDList;
@NotNull(message = "代表作不能为空")
@Size(min = 1,max = 50) //限制字段长度 防止插入数据库直接报错
private String masterWork;
}
接来下在Controller层写一个接口 并加上@Vaild在方法参数前面,在Service也同样适用
@RequestMapping("/music")
@RestController
@Validated
public class RapperController {
@PostMapping("/addRapper")
public String addRapper(@Valid RapperBaseVO createVO) {
System.out.println(createVO);
//执行业务代码 ....
return createVO.toString();
}
}
接下来用Foxapi模拟一下参数验证效果
看到Vaild在VO上添加的注解已经生效了
三、Vaild常用的验证注解和说明
@NotNull:判断参数是否为空
@NotBlank:判断是否为空字符串(String类型推荐用这个而不是NotNull)
@Max、@Min:Integer类型判断最大值或最小值
@NotEmpty:判断是否为空集合
@Size:判断对象的长度