这里是Hibernate Validator 6.0的另一个维护版本。

非常感谢我们的用户和贡献者报告问题和提交拉取请求,这绝对是一个伟大的团队合作。

这是为所有使用Hibernate Validator 6.0.x的人推荐的升级版本,它是6.0.2.Final的替代品。

新增内容

ScriptEvaluatorFactory SPI迈进

Marko Bekhta不辞辛劳地使@ScriptAssert@ParameterScriptAssert约束更加灵活。

我们心中有几个目标

  • 允许在OSGi环境中使用这些功能(之前我们有类加载器问题)

  • 使能够使用基于JSR 223之外的脚本引擎(例如Spring EL)

  • 为每个ValidatorFactory实例化一个独立的ScriptEvaluatorFactory,而之前是一个静态的单例

使用这个新的SPI,您可以在XML配置中定义特定的ScriptEvaluatorFactory

<validation-config
        xmlns="http://xmlns.jcp.org/xml/ns/validation/configuration"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/validation/configuration
            http://xmlns.jcp.org/xml/ns/validation/configuration/validation-configuration-2.0.xsd"
        version="2.0">

    <property name="hibernate.validator.script_evaluator_factory">
        org.hibernate.validator.referenceguide.chapter09.CustomScriptEvaluatorFactory
    </property>

</validation-config>

或者通过程序化API

Validator validator = Validation.byProvider( HibernateValidator.class )
        .configure()
        .scriptEvaluatorFactory(
                new CustomScriptEvaluatorFactory()
        )
        .buildValidatorFactory()
        .getValidator();

您可以在我们的文档中找到其他示例,尤其是允许使用@ScriptAssert@ParameterScriptAssert与SpEL(Spring表达式语言)或OSGi环境的示例。

目前这个新的SPI被标记为孵化状态。欢迎反馈!

新的@CodePointLength约束

这个新约束是由Kazuki Shimizu贡献的。它允许为字符序列的代码点长度添加限制

@CodePointLength(min = 1, max = 10, normalizationStrategy = NormalizationStrategy.NFD)
private String text = "";

性能和内存分配改进

我们对性能和内存分配又进行了一轮改进。Hibernate Validator应该比以往任何时候都要快!

值得注意的一点是,如果您使用自定义的 TraversableResolver,现在可以禁用 TraversableResolver 结果缓存。缓存会增加一些开销,如果您的 TraversableResolver 运行得很快,您可能不需要它。更多信息可以在 我们的文档 中找到。

OSGi 支持改进

除了 ScriptEvaluatorFactory SPI 之外,我们还对 OSGi 进行了其他改进。

我们的 CDI 模块的 OSGi 清单不正确,在 Arjan Timjs 的帮助下,我们修复了它并添加了集成测试。

文档改进

我们对有关以下方面的文档进行了一些改进:

  • 容器元素约束功能,

  • JDK 9 支持。

完整变更日志

已修复问题的完整列表可以在 我们的 JIRA 上找到。

获取 6.0.3.Final 版本

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

或者,在 SourceForge 上提供了一个包含所有组件的发行版包(TAR.GZZIP)。

如果您想在 WildFly 上使用此版本的全新功能,我们还提供了 WildFly 的补丁,适用于 WildFly 10.1WildFly 11.0 CR1(等待与 Maven Central 的同步)。您可以在此处了解如何应用此类补丁 这里

5.3 和 5.4 分支的维护版本

我们还发布了 5.3.6.Final 和 5.4.2.Final,这两个版本都更新了对 JDK 9 的支持,并修复了 CVE-2017-7536 - 这仅影响依赖于安全管理的用户。

接下来是什么?

我们将继续发布维护版本,以快速解决用户报告的问题。

我们更新了 我们的路线图,其中包括我们对未来的想法。如果您想加入我们,请不要犹豫,选择一个任务并来讨论它。

反馈、问题、想法?

要取得联系,请使用以下渠道


返回顶部