小议数据校验

来源:互联网 发布:腾讯云mysql 编辑:程序博客网 时间:2024/06/06 04:28

hibernate validator是很好的数据校验框架,而且很方便就可以和springMVC集成起来,所以在实际项目中使用很广泛。

hibernate validator使用在bean类的属性上加注解的方式来完成验证,这是非常好的,因为大家只需要记住常用的注解名称就可以了,公司可以根据自己的实际业务情况编写自定义注解,这样对于数据的验证知识就可以很好的传递下来。

#同一bean不同场景需要验证不同的字段集合

实际使用过程中对于同一个bean在不同使用场景要求做的验证字段并不一致,有时候需要验证a,b,c三个字段,有时候又只需要验证b,c两个字段。hibernate validator中的groups就是为了应对这一场景的,这里不探讨groups如何使用,而是探讨是否有必要使用groups。实际开发中,特别是web开发,在前台一般都是将后台的Bean转化为js对象来处理,比如我们可能修改了其中的某个属性,但是将修改后的数据发往后台时一般仍然是整个对象进行提交,而我们一般只需要对要保存的操作进行数据校验,所以这种情况下实际上是不需要groups的。尽可能不要使用groups,因为可读性并不好,而且使用过多容易产生混乱,导致漏验证的情况发生。


#多种校验规则应用于基本类型的封装类

@RequestMapping(value="/test7")public String test7(String  aName){}
对于基本封装类型,hibernate validator就不适合了。这时候建议写一个通用的方法类似于下面这样

validatorUtil.valdator(Object obj,IValidator... ruleValidator)
第一个参数为要验证的对象,后面的可变参数为规则验证器,每个规则验证器都实现了IValidator接口。我们完全可以按照hibernate validator中的已经实现的注解名称和已经自定义的注解名称来命名这些规则验证器,这样对于bean或者对于基本封装类型,程序员只需要记住校验规则即那些注解的名称即可完成校验,不必再去记忆各种校验工具类api。

0 0
原创粉丝点击