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();
}
文章介绍了在Spring中,@Valid和@Validated注解在参数校验中的应用。@Validated支持分组校验,允许在新增和修改接口中定义不同的校验规则,如品牌id在修改时需非空而在新增时需为空,品牌名和logo的校验则在两个接口中都适用。
1867

被折叠的 条评论
为什么被折叠?



