我知道有非标准框架,例如 commons-validator 和 hibernate 验证器。
我想知道是否有人知道官方标准的实现。
我知道有非标准框架,例如 commons-validator 和 hibernate 验证器。
我想知道是否有人知道官方标准的实现。
现在有 2 个兼容的实现:
您可以在此处访问基准测试和两者的快速描述:http: //carinae.net/2010/06/benchmarking-hibernate-validator-and-apache-beanvalidation-the-two-jsr-303-implementations/
Hibernate Validator 是JSR-303的参考实现
实现:
OvaL不是 JSR-303 验证器,但它可以将 jsr303 约束转换为自己的约束。
我认为 Spring Framework 从版本 3 开始就符合 JSR303。
Spring Framework 4.0 在设置支持方面支持 Bean Validation 1.0 (JSR-303) 和 Bean Validation 1.1 (JSR-349),同时也适应了 Spring 的 Validator 接口。
至于 2018 年夏季,有三个相互取代的规范:
您可以查看官方网站了解更多详情。
Hibernate Validator 6.10是最新版本 (380) 的参考实现。它有一个很棒的文档,我建议你看看(但它是相当大的东西)。
如果您只需要快速介绍,CUBA 平台文档可以让您更短地掌握该主题。CUBA 框架基于 Spring 和 EclipseLink,所以你学到的东西也可以用于常规 Spring+Hibernate 项目:)
旧版本的 Hibernate Validator 和Apache BVal都支持 JSR 349,它们都是“官方的”。
在除 Hibernate 之外的 ORM 中,EclipseLink支持 JSR 349 并且可以使用 HV 提供的 Validator 接口。
如果可能的话,我建议不要使用旧版本(JSR 303),而是切换到 349 或 380 规范。他们更加成熟和富有。
即使项目中没有 ORM,也可以在项目中使用 Bean Validation,例如,您可以在 Java 2SE 或 Android 应用程序中使用它(请参阅本文),但是,这不是 Bean Validation 设计的主要方法. 尽管可以单独使用这些验证器(HV 和 BVal)(您必须手动实例化和调用Validator
) ,但它们与 Hibernate、Spring 或CUBAExecutableValidator
等框架一起工作时会非常出色