JSR 303 帮助我们简化校验(续)

文章介绍了如何利用JSR303进行分组校验,通过定义不同的校验规则分组,实现在不同场景下对同一个Bean应用不同的校验策略。文章详细阐述了分组校验的实现步骤,包括定义分组接口、在Bean上指定分组信息以及在业务方法中使用@Validated指定分组。示例展示了在添加和更新操作中使用不同分组校验Brand对象的用法,并通过Postman测试验证了分组校验的效果。
摘要由CSDN通过智能技术生成

                                                        之分组校验

分组校验

        在使用JSR 303来帮助我们简化数据校验的时候,难免会遇到多个方法对同一个Bean有不同的数据校验规则。那此时就可以使用分组来帮助我们实现。

        每个分组指定不同的校验规则,不同的方法执行不同的分组,就可以得到不同的校验结果

        通过对javax.validation.constraints下每个注解的分析,发现JSR 303 每个注解都默认有3个属性

        message  用来定义数据校验失败后的提示消息,默认读取配置文件的内容。全局搜索 ValidationMessages.properties,可以看到默认的信息。

        groups 用来定义分组,是一个Class<?>[]数组,可以定义多个分组。

      

实现分组的步骤:

Step1.

           使用接口,定义分组

Step2.

            指定注解时,通过 groups 指定分组。用于指定在某个分组条件下,才去执行校验规则。

Step3.

         在相关的业务方法上,通过 @Validated 注解指定分组,去指定校验。

使用案例

1.创建分组接口

创建AddBrandGroup和UpdateBrandGroup两个空接口,内部不做任何实现。

AddBrandGroup用来指定添加Brand时的校验规则

UpdateBrandGroup用来指定修改Brand时的校验规则

 2.给Bean指定分组信息

        通过groups指定分组,使用了分组一定要记得在Bean指定,不然校验不会生效

 3.在业务方法上指定分组

        通过@Vlidated注指定分组信息

        那么为什么不能使用@Valid注解添加分组了?那是因为@Valid本身不支持分组的

 但springframework为我们提供了分组校验

4.postman测试

 

 可以看到自定义的分组校验已经生效

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值