2 akanegasakisora akanegasakisora 于 2016.02.15 01:52 提问

net.sf.oval和hibernater-validator的区别?选哪个?

项目中需要对传进来的参数进行校验,在一个工具类里面同时用了这两个框架进行验证。查找资料得知,Hibernate Validation是对Bean Validation规范的实现(通俗的说就是实现了接口对不对,javax.validation.Validation.buildDefaultValidatorFactory()方法返回的是一个ValidatorFactoryImpl的实例),oval是否和Hibernate Validation类似,这两个框架的区别和相同点是什么?一般来说,_是否有必要同时使用两者进行校验,如果要选择的话,哪个更好一些_?

2个回答

caozhy
caozhy   Ds   Rxr 2016.02.15 06:20

两者大同小异,实现的原理也差不多,没有必要同时校验。因为校验是否安全可靠取决于你的配置和逻辑,而不是框架。相同的逻辑两个各自验证一次毫无意义。
相比较而言,net.sf.oval更灵活,hibernater-validator更简单。根据你的需要自己选择一个好了。

akanegasakisora
akanegasakisora   2016.02.15 11:03

hibernater-validator依赖于validation-api,说明这个框架是实现了bean validation规范的,从测试中也可以看出,既可以使用javax.validation包下的注解来做校验,也可以使用自身的注解;而oval不依赖于validation-api,也不可以使用javax.validaton包下的注解,这是否说明oval框架没有遵守bean validation规范?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
shiro安全框架扩展教程--数据对象安全校验(oval框架)
很多时候我们都是忽略了对数据对象的
数据对象安全校验(oval框架)
很多时候我们都是忽略了对象数据的合法性,以为简单通过前台的js验证下是否正确就可以了,这后果比较让人但疼,下面举例个简单的例子,页面需要用户提交个简介,用户 这个时候可以写脚本在这个内容里,你说你在js有校验合法性,但是你要明白,现在的抓包工具是可以等你提交的时候,拦截住请求,然后通过编辑器修改了提交的值来绕过前台的js 验证,这样就造成了数据的不合法,所以如果数据安全要求高的,必须在
GBK和UTF8的区别,该选择哪个版本
原创来自: zhangQ的博客 http://blog.sina.com.cn/zq0354  GBK的文字编码是双字节来表示的,即不论中、英文字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1。 UTF-8编码则是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。对于英文字符较多的论坛则用UTF-8节省空间
许可证 license 区别和选择
一图流。来源阮总。
java开源验证框架OVAL帮助文档
java开源验证框架oval,功能非常强大,使用简单;现在整理帮助文档供大家参考,希望能得到更多的反馈和使用经验。
VC程序代码之判断用户选了哪个单选按钮
VC程序代码之判断用户选了哪个单选按钮
gdm LightDM和kdm
1 简介 LightDM,即:Light Display Manager,是一个全新的、轻量的Linux桌面的桌面显示管理器,而传统的Ubuntu用的是GNOME桌面标准的GDM。[1]。 LightDM是一个跨桌面显示管理器,其目的是成为 X org X 服务器的标准显示管理器。我们之所以编写一个新的显示管理器,是因为从XDM以来 (通常基于 XDM 源代码)
OVAL验证框架帮助文档_OVAL API
OVAL使用文档 版本:oval-1.40 在做数据导入的时候经常会遇到大量数据的校验,而这大量数据校验如果写在类里这样我们的程序会显的很臃肿而且会有很多的冗余,而且也不方便,如果要解决这个问题则就是通过公共的类来写,这样就会大大提高校验的臃肿和代码的冗余的问题,而且也给写程序代来方便,在这里我们就用OVAL进行校验。 首先我先说明OVAL的使用环境,这里我们使用
LABjs、RequireJS、SeaJS 哪个最好用?为什么?- 玉伯的回答
LABjs 的核心是 LAB(Loading and Blocking):Loading 指异步并行加载,Blocking 是指同步等待执行。LABjs 通过优雅的语法(script 和 wait)实现了这两大特性,核心价值是性能优化。LABjs 是一个文件加载器。RequireJS 和 SeaJS 则是模块加载器,倡导的是一种模块化开发理念,核心价值是让 JavaScript 的模块化开发变得更
新老版 Xcode 的区别 ---Xcode 4.2 环境下Application8种可选类型分析
http://hi.baidu.com/lee_shine/blog/item/8e2015346fa30594a61e12fc.html 新老版 Xcode 的区别 Navigation-based Application  ——->Master-Detail Application => iphone Splite View-based Application ——->M