自上次Hibernate Validator发布以来已经过去了几个月,我们在这期间取得了一些显著的进展。
我们刚刚发布了包含所有这些错误修复和增强功能的Hibernate Validator 6.0.8.Final。
这是所有使用Hibernate Validator 6.0.x的用户推荐升级,它可以直接替换6.0.7.Final。
新功能
向约束验证器传递有效载荷
Matthias Kurz致力于允许向约束验证器传递任意有效载荷。
将其视为根据您的环境(区域设置、生产/预发布环境、您在引导时初始化并希望注入约束验证器的全局对象等)使约束验证器行为不同的好方法。
有效载荷是Object
,因此它可以是一个String
、一个Map
,甚至是合适的bean。
您可以在初始化ValidatorFactory
时定义约束验证器有效载荷
ValidatorFactory validatorFactory = Validation.byProvider( HibernateValidator.class )
.configure()
.constraintValidatorPayload( "US" )
.buildValidatorFactory();
Validator validator = validatorFactory.getValidator();
并在初始化特定的Validator
时对其进行细化
HibernateValidatorFactory hibernateValidatorFactory = Validation.byDefaultProvider()
.configure()
.buildValidatorFactory()
.unwrap( HibernateValidatorFactory.class );
Validator validator = hibernateValidatorFactory.usingContext()
.constraintValidatorPayload( "FR" )
.getValidator();
您的约束验证器可以在其initialize()
方法中获取约束验证器有效载荷
public class ZipCodeValidator implements HibernateConstraintValidator<ZipCode, String> {
public String countryCode;
@Override
public void initialize(ConstraintDescriptor<ZipCode> constraintDescriptor,
HibernateConstraintValidatorInitializationContext initializationContext) {
this.countryCode = initializationContext
.getConstraintValidatorPayload( String.class );
}
[...]
}
您可以在我们的参考文档中找到有关此新功能的所有相关信息。
WildFly 12
随着WildFly 12最近发布,我们更新了构建以测试Hibernate Validator在WildFly 11和12上的版本。
目前,我们为这两个版本生成WildFly补丁,以升级WildFly内部的Hibernate Validator模块。
请注意,WildFly 12现在包含Bean Validation 2.0和Hibernate Validator 6.0(6.0.7.Final),但它们默认未启用。您需要通过追加ee8.preview.mode
选项来启用EE8预览模式,如WildFly 12发布通告中所述。
翻译更新
默认消息的西班牙语翻译由Hillmer Chona更新。
完整更改日志
已修复问题的完整列表可以在我们的JIRA上找到。
获取6.0.8.Final
要使用Maven、Gradle等获取发布版本,请使用GAV坐标org.hibernate.validator:{hibernate-validator|hibernate-validator-cdi|hibernate-validator-annotation-processor}:6.0.8.Final。请注意,组ID已从org.hibernate
(Hibernate Validator 5和更早版本)更改为org.hibernate.validator
(从Hibernate Validator 6开始)。
如果您想在WildFly上使用此版本的最新功能,我们还提供了WildFly 11和WildFly 12的WildFly补丁。您可以在此处了解如何应用这些补丁。
接下来是什么?
我们将继续发布维护版本,以快速修复用户报告的问题。
我们更新了我们的路线图,其中包含了我们对未来的想法。如果您想加入我们,请不要犹豫,选择一个任务并与我们讨论。
反馈、问题、想法?
要取得联系,请使用以下渠道
-
用户论坛(使用问题、一般反馈)
-
问题跟踪器(错误报告、功能请求)
-
邮件列表(与开发相关的讨论)
-
Bean Validation开发邮件列表(关于Bean Validation规范讨论)