@Validated多场景的复杂校验

 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();
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值