这是一个漫长的旅程,超过六个月,但终于来了:我们刚刚发布了Hibernate Validator 6.0最终版,以及Bean Validation 2.0规范的最终版本

自CR3以来有哪些新变化?

对于那些密切关注6.0开发的人来说,以下是自CR3以来的重要更改

  • 更新文档

  • 更新翻译

  • 性能改进

  • 减少内存占用

  • 支持最新的JDK 9(构建180)

已解决的问题的完整列表可以在我们的JIRA上找到 此处

为什么我应该使用这个酷炫的新版本?

我们为您带来了一些新功能

首先,Hibernate Validator 6.0是Bean Validation 2.0规范的参考实现,因此它包含所有新功能

  • 容器元素约束和级联验证的一等支持(例如:private Map<@Valid @NotNull OrderCategory, List<@Valid @NotNull Order>> orderByCategories;);

  • 支持新的JSR 310日期/时间数据类型用于@Past@Future

  • 新的内置约束:@Positive@PositiveOrZero@Negative@NegativeOrZero@PastOrPresent@FutureOrPresent

我们还利用了JDK 8的新功能(内置约束标记为可重复的,参数名称通过反射检索),因为它是现在所需的最小版本。

您可以在我们的Alpha、Beta和候选发布公告中阅读整个故事

它更快...

我们进行了大量的基准测试,显著提高了Hibernate Validator的性能。在各种场景下,它可能快两倍。

我们很快将在本博客上发布我们的基准测试结果。

...而且它消耗的内存更少!

为了施展魔法,Hibernate Validator会收集你受约束的bean的大量元数据。在Keycloak开发者的报告之后,我们致力于减少收集的元数据占用的内存。

Hibernate Validator现在应该比以前消耗更少的内存来存储你的受约束bean的元数据。

轻松升级

你首先会注意到,artifacts的groupId已更改:现在是org.hibernate.validator(我们在末尾添加了validator,以便更好地隔离各种Hibernate技术)。

除此之外,如果你没有使用实验性功能,它可能只是直接替换。

如果你使用了旧的价值处理基础设施来处理自定义容器,你需要将它们迁移到新的值提取基础设施

潜在的迁移问题的详细列表可以在我们的迁移指南中找到。

如果你想在WildFly上利用本版本的全新功能,我们还提供了针对WildFly 10.1WildFly 11.0 Alpha1的WildFly补丁。你可以在这里了解如何应用此类补丁这里

听起来很有趣,我该如何帮忙?

首先,在你的应用程序中测试它,并报告可能遇到的任何问题。

然后,如果你愿意,可以测试新功能(新的约束,新的容器元素支持...)。如果你对功能或文档有任何问题,请向我们报告。

最后,我们在Bean Validation 2.0和Hibernate Validator 6.0中添加了一些内置约束,因此我们需要更新翻译。

已涵盖英语、法语、德语、波斯语、乌克兰语和巴西葡萄牙语,但对于其他语言的任何帮助都受欢迎。只需查看我们GitHub仓库中的翻译并创建一个PR(如果你不知道如何编码属性文件,只需将其推送到我们,我们将进行处理)。

获取6.0.1.Final

要使用Maven、Gradle等获取发布版本,请使用GAV坐标 org.hibernate.validator:{hibernate-validator|hibernate-validator-cdi|hibernate-validator-annotation-processor}:6.0.1.Final。注意,groupId已从org.hibernate(Hibernate Validator 5及更早版本)更改为org.hibernate.validator(从Hibernate Validator 6开始)。

或者,可以在SourceForge上提供包含所有内容的发行版包(TAR.GZZIP)。

关于6.0.0.Final版本如何?

6.0.0.Final版本实际上是提交给JCP作为Bean Validation 2.0参考实现的版本。在最终审批投票期间,我们对它进行了大量的改进,因此我们决定立即发布带有所有这些改进的6.0.1.Final版本。

接下来是什么?

首先,我们将休息一下,等待您对这个版本的反馈。

在您的帮助下,我们希望很快发布一个包含更新翻译的新版本。

最后,我们还打算探索未来规范修订中可能的功能。在确定API之前,获得领域的反馈总是好的。

反馈、问题、想法?

要联系,请使用常规渠道


返回顶部