我知道有非标准的框架,例如commons-validator和hibernate验证器。
我想知道是否有人知道官方标准的实施。
答案 0 :(得分:57)
现在有2个兼容的实现:
您可以在此处访问基准测试和快速描述:http://carinae.net/2010/06/benchmarking-hibernate-validator-and-apache-beanvalidation-the-two-jsr-303-implementations/
答案 1 :(得分:34)
Hibernate Validator是JSR-303的reference implementation
答案 2 :(得分:14)
答案 3 :(得分:3)
OVaL不是JSR-303验证器,但可以将jsr303约束转换为自己的约束。
答案 4 :(得分:3)
我认为Spring Framework从版本3开始变得符合JSR303标准。
Spring Framework 4.0在设置支持方面支持Bean Validation 1.0(JSR-303)和Bean Validation 1.1(JSR-349),并使其适应Spring的Validator接口。
答案 5 :(得分:1)
至2018年夏季,共有三种规格相互取代:
您可以咨询official site以获得更多详细信息。
Hibernate Validator 6.10是最新版本(380)的参考实现。我建议您看一下它的documentation(尽管它是很大的东西)。
如果仅需要快速介绍,CUBA platform docs可以使您对主题的理解更短。 CUBA框架基于Spring和EclipseLink,因此您学到的东西也可以在常规的Spring + Hibernate项目中使用:)
较早版本的Hibernate Validator和Apache BVal支持JSR 349,它们都是“官方的”。
EclipseLink从Hibernate以外的ORM中支持JSR 349,并且可以使用HV提供的Validator接口。
如果可能的话,我建议不要使用旧版本(JSR 303),而是切换到349或380规格。他们更加成熟和富有。
即使项目中没有ORM,也可以在项目中使用Bean验证,例如,您可以在Java 2SE或Android应用程序中使用它(请参阅article),但是,这不是Bean验证的方法被设计为主要的东西。尽管可以单独使用这些验证器(HV和BVal)(您必须实例化并手动调用Validator
和ExecutableValidator
),但它们确实可以与Hibernate,Spring等框架一起使用或CUBA