43

我知道有非标准框架,例如 commons-validator 和 hibernate 验证器。

我想知道是否有人知道官方标准的实现。

4

6 回答 6

59

现在有 2 个兼容的实现:

您可以在此处访问基准测试和两者的快速描述:http: //carinae.net/2010/06/benchmarking-hibernate-validator-and-apache-beanvalidation-the-two-jsr-303-implementations/

于 2010-07-07T13:33:57.363 回答
35

Hibernate Validator 是JSR-303的参考实现

于 2009-09-06T07:49:23.337 回答
14

实现:

于 2009-09-06T08:12:16.083 回答
3

OvaL不是 JSR-303 验证器,但它可以将 jsr303 约束转换为自己的约束。

于 2012-02-10T01:15:23.993 回答
3

我认为 Spring Framework 从版本 3 开始就符合 JSR303。

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/validation.html#validation-beanvalidation

Spring Framework 4.0 在设置支持方面支持 Bean Validation 1.0 (JSR-303) 和 Bean Validation 1.1 (JSR-349),同时也适应了 Spring 的 Validator 接口。

于 2016-04-14T18:27:01.103 回答
2

至于 2018 年夏季,有三个相互取代的规范:

  • JSR 380(Bean 验证 2.0)
  • JSR 349(Bean 验证 1.1)
  • JSR 303(Bean 验证 1.0)

您可以查看官方网站了解更多详情。

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等框架一起工作时会非常出色

于 2018-06-22T18:28:16.187 回答