【发布时间】:2010-11-25 23:29:05
【问题描述】:
我知道有非标准框架,例如 commons-validator 和 hibernate 验证器。
我想知道是否有人知道官方标准的实现。
【问题讨论】:
标签: java validation bean-validation
我知道有非标准框架,例如 commons-validator 和 hibernate 验证器。
我想知道是否有人知道官方标准的实现。
【问题讨论】:
标签: java validation bean-validation
Hibernate Validator 是 JSR-303 的 reference implementation
【讨论】:
至于 2018 年夏季,三个规格相互取代:
您可以咨询official site了解更多详情。
Hibernate Validator 6.10 是最新版本 (380) 的参考实现。它有一个很棒的documentation,我建议你看看(但它是相当大的东西)。
CUBA platform docs 如果您只需要快速介绍,则可以让您更短地掌握该主题。 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 应用程序中使用它(参见 article),但是,这不是 Bean Validation 的设计方法作为首要的事情。尽管可以单独使用这些验证器(HV 和 BVal)(您必须实例化并手动调用 Validator 和 ExecutableValidator),但它们与 Hibernate、Spring 或 CUBA 等框架一起工作时会非常出色
【讨论】:
我认为 Spring Framework 从版本 3 开始就符合 JSR303。
Spring Framework 4.0 在设置支持方面支持 Bean Validation 1.0 (JSR-303) 和 Bean Validation 1.1 (JSR-349),还对其进行了适配 Spring 的 Validator 接口。
【讨论】:
现在有 2 个兼容的实现:
您可以在此处访问基准测试和两者的简要说明:http://carinae.net/2010/06/benchmarking-hibernate-validator-and-apache-beanvalidation-the-two-jsr-303-implementations/
【讨论】:
OVaL 不是 JSR-303 验证器,但它可以将 jsr303 约束转换为自己的。
【讨论】:
【讨论】: