这里是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 的帮助下,我们修复了它并添加了集成测试。
完整变更日志
已修复问题的完整列表可以在 我们的 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 开始)。
如果您想在 WildFly 上使用此版本的全新功能,我们还提供了 WildFly 的补丁,适用于 WildFly 10.1 和 WildFly 11.0 CR1(等待与 Maven Central 的同步)。您可以在此处了解如何应用此类补丁 这里。
5.3 和 5.4 分支的维护版本
我们还发布了 5.3.6.Final 和 5.4.2.Final,这两个版本都更新了对 JDK 9 的支持,并修复了 CVE-2017-7536 - 这仅影响依赖于安全管理的用户。
接下来是什么?
我们将继续发布维护版本,以快速解决用户报告的问题。
我们更新了 我们的路线图,其中包括我们对未来的想法。如果您想加入我们,请不要犹豫,选择一个任务并来讨论它。
反馈、问题、想法?
要取得联系,请使用以下渠道
-
用户论坛(使用问题,一般反馈)
-
问题跟踪器(错误报告,功能请求)
-
邮件列表(与开发相关讨论)
-
Bean Validation 开发邮件列表(关于 Bean Validation 规范的讨论)