1.@Valid和@Validated注解区别
@Valid是一个规范
@Validated是Spring自带的
两个都能用于参数校验,但是Valid无法做分组处理,也就是区分这个是新增接口的校验,还是修改接口的校验
2.@Validated的使用
1.定义添加分组接口
public interface AddGroup {
}
2. 实体类里注解
/**
* 品牌id
*/
@NotNull(message = "修改必须指定品牌id",groups = {UpdateGroup.class})
@Null(message = "新增不能指定品牌id",groups = {AddGroup.class})
@TableId
private Long brandId;
/**
* 品牌名
* 不能为空并且至少有一个非空串字符
*/
@NotBlank(message = "品牌名必须提交", groups = {AddGroup.class,UpdateGroup.class })
private String name;
/**
* 品牌logo地址
*/
@NotEmpty(groups = AddGroup.class)
@URL(message = "logo必须是一个合法url地址", groups = {AddGroup.class,UpdateGroup.class })
private String logo;
3.Controller里注解(新增、修改)
/**
* 保存
*/
@RequestMapping("/save")
public R save(@Validated(AddGroup.class) @RequestBody BrandEntity brand){
brandService.save(brand);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@Validated(UpdateGroup.class) @RequestBody BrandEntity brand){
brandService.updateById(brand);
return R.ok();
}