Hibernate Validator 6将成为Bean Validation 2.0的参考实现。这个Alpha2版本与Bean Validation规范2.0.0.Alpha2版本相协调。
它也是一个游乐场,用于验证Bean Validation规范的未来增强,因此对这里提出的主题的反馈非常受欢迎!
注意,Hibernate Validator 6需要JDK 8或更高版本。
如果您错过了Alpha1版本,在继续阅读之前查看其公告可能对您有益。
自Alpha1以来的新内容
改进的容器元素验证支持
容器元素验证支持是Bean Validation 2.0的一个重大新特性,并在本次周期中得到了更多的关注。
程序化API和XML支持
为了获取以下内容的等价物
public class FishTank {
private Optional<@Valid FishTankModel> model;
private Map<@Size(min = 3, max = 10) String, @Min(1) Integer> fishCountByType;
}
现在可以通过XML映射配置(这是Bean Validation 2.0规范的一部分)或通过(实现特定的)程序化API来声明容器元素类型约束和级联验证
[...]
<bean class="com.acme.FishTank" ignore-annotations="false">
<field name="model">
<containerElementType>
<valid />
</containerElementType>
</field>
<field name="fishCountByType">
<containerElementType typeArgumentIndex="0">
<constraint annotation="javax.validation.constraints.Size">
<element name="min">
<value>3</value>
</element>
<element name="max">
<value>10</value>
</element>
</constraint>
</containerElementType>
<containerElementType typeArgumentIndex="1">
<constraint annotation="javax.validation.constraints.Min">
<element name="value">
<value>1</value>
</element>
</constraint>
</containerElementType>
</field>
</bean>
[...]
或通过程序化API
ConstraintMapping newMapping = config.createConstraintMapping();
newMapping
.type( FishTank.class )
.property( "model", FIELD )
.containerElementType()
.valid()
.property( "fishCountByType", FIELD )
.containerElementType( 0 )
.constraint( new SizeDef().min( 3 ).max( 10 ) )
.containerElementType( 1 )
.constraint( new MinDef().value( 1 ) );
获取6.0.0.Alpha2
要使用Maven、Gradle等获取此版本,请使用GAV坐标org.hibernate.validator:{hibernate-validator|hibernate-validator-cdi|hibernate-validator-annotation-processor}:6.0.0.Alpha2。请注意,组ID已从org.hibernate
(Hibernate Validator 5和更早版本)更改为org.hibernate.validator
(自Hibernate Validator 6开始)。
反馈、问题、想法?
要联系,请使用常用渠道
-
用户论坛(使用问题、一般反馈)
-
问题跟踪器(错误报告、功能请求)
-
邮件列表(与开发相关的话题)
-
Bean Validation开发邮件列表(关于Bean Validation规范的话题)