校验框架分组实用性疑惑

来源:8-11 中级约束注解使用之组序列

qq_电耗子_0

2019-10-30

一、如何分组:
假如待校验类有a,b,c三个成员,现有3个需求
需求1:仅校验a
需求2:仅校验a,b
需求3:仅校验a,c
分组方案1:每个成员各为一组,然后通过组排序随意组合达到提供给上层使用,当有新校验时定义新的组排序。
利:有新需求的时候可以随意组合单个成员,如校验bc时,组排序bc
避:需为每个成员定义接口
分组方案2:要校验什么就用什么组合。a为组,ab为一组,ac为一组,当有新校验时在相应成员groups加上新接口
利:省了给每个成员单独定义接口分组
避:可能会导致成员注解参数groups=接口1,接口2,接口3…接口N

二、分组后成员归属零散如何一次校验完成员
当需要一次校验完全部成员时是否需要把接口拼凑起来,有没有jar默认的?

写回答

1回答

张小喜

2019-10-30

第一个问题,需要看实际使用场景,一般我们都是按方案2来的。毕竟使用校验分组的场景就是要验证一组属性是否符合要求,而且一般校验组不会太多。比如:添加时校验组,更新时校验组等。

第二个问题,是有默认组的,是Default.class。如果只@NotEmpty这样写,他是归属于默认组的。但是如果@NotEmpty(SaveGroup.class)已经这样写了,那他就不属于默认组了。所以如果要一次校验完所有属性,就需要手动添加到一个组中。一般这样的场景比较少。

2
1
qq_电耗子_0
谢谢老师
2019-10-31
共1条回复

Java高效编程技巧实践 告别996

可以改变的编程效率

1451 学习 · 326 问题

查看课程