我知道你们一直在期待,但现在它已经可用 - Hibernate Validator 5.2.1.Final :-)。鉴于它是所有5.x版本的下线替换,没有必要延迟升级。只需去获取它。
对于更谨慎的人,这里再次总结了5.2版本的高亮内容以及更多信息的指向。
亮点
-
Java 8支持,尤其是验证
Optional
和新日期/时间类型的能力。然而,不表示时间线上的瞬时的类型不支持。这包括,例如,LocalDate
及其子类型。如果你的数据类型不能明确地与时间线上的一个瞬间相关联,那么在语义上讨论未来和过去是没有意义的。这仍然是一个开放讨论(见HV-981)。联系我们如果你有意见。Java 8的支持还包括使用类型注解约束,如
private List<@AcmeEmail String> emails;
在这种情况下,
emails
列表的每个元素(或更普遍地,任何Iterable
)都将使用@AcmeEmail
进行验证。请注意使用自定义约束,而不是Hibernate Validator提供的@Email
。原因是目前所有提供的约束在其定义中缺少java.lang.annotation.ElementType.TYPE_USE
。添加它将破坏与Java 6的向后兼容性。Java 8不是Hibernate Validator 5.2的要求。它仍然与Java 6向后兼容。Java 8特定功能仅在检测到Java 8运行时才启用。
-
能够通过Java ServiceLoader机制提供自定义约束。底层使用新的
ConstraintMappingContributor
SPI。 阅读更多... -
能够使用新的
ParameterMessageInterpolator
而不依赖表达式语言库来使用 Hibernate Validator 的功能。了解更多…阅读更多… -
能够提供外部
ClassLoader
。对于模块化环境可能非常有用。阅读更多… -
Apache Karaf 功能文件。阅读更多…
-
扩展了 Path API,以支持
ElementKind.PROPERTY
类型的节点,这允许获取所表示属性的值。阅读更多… -
TimeProvider 协议。阅读更多…
-
大量错误修复
如何获取
Maven 艺术品可以在 JBoss Maven 存储库中找到,也可以在 Maven Central 中找到。GAV 是 org.hibernate:hibernate-validator:5.2.1.Final。一旦从其 存储故障 中恢复,分发捆绑包将上传到 SourceForge。
接下来是什么
未来的开发将由即将到来的 Bean Validation 更新——Bean Validation 1.2 驱动。很可能会与需要 Java 8 的 Hibernate Validator 6 保持一致。这将是有必要的,以便利用 Java 8 提供的所有新功能,例如 @Repeatable
的使用。这与 Java EE 8 标准的其他技术保持一致。
请关注 Hibernate Validator 路线图 的变化,以及关于此和 Bean Validation 博客的公告。
谢谢
最后但同样重要的是,向所有在过程中伸出援手的人表示衷心的感谢,无论是通过错误报告还是通过拉取请求提供更多帮助。特别感谢 Khalid,他通过他的 Google Summer of Code 工作开始了 5.2 版本系列的开发工作。还要感谢 Denis Tiago、Nicolas Francois、Xavier Sosnovsky、dernasherbrezon、stawny 和 tonnyyi 提供的小型贡献。最后,感谢所有参与 Hibernate 团队的其他成员。
祝您玩得开心!
* 如果您想知道关于 5.2.0.Final 发生了什么,它已经过时,因为等待 SourceForge 恢复。在此期间,报告并解决了 IBM JVM 特定的问题 (HV-1007)。