Hibernate Validator 4.2.0.CR1 已准备好通过 JBoss Maven 仓库SourceForge 下载。我们承诺您将不必再等待 4.2.0.Final 版本那么久。总共解决了 28 个问题。大多数问题都是一些小错误修复、文档和代码重构。感谢所有提供错误报告并帮助我们使验证器变得更好的每个人 :-)

最大的变化是现在也可以通过编程方式配置方法级别的验证。为了明确地实现这一点,我们不得不对编程API进行更多修改。你还记得Beta2中的编程API是什么样的吗?这里有一个例子

ConstraintMapping mapping = new ConstraintMapping();
mapping.type( Car.class )
    .property( "manufacturer", FIELD )
        .constraint( NotNullDef.class )
    .property( "licensePlate", FIELD )
        .constraint( NotNullDef.class )
        .constraint( SizeDef.class )
            .min( 2 )
            .max( 14 )
    .property( "seatCount", FIELD )
        .constraint( MinDef.class )
            .value ( 2 )
.type( RentalCar.class )
    .property( "rentalStation", METHOD)
        .constraint( NotNullDef.class ); 

在CR1 API中,同样的例子看起来像这样

ConstraintMapping mapping = new ConstraintMapping();
mapping.type( Car.class )
    .property( "manufacturer", FIELD )
        .constraint( new NotNullDef() )
    .property( "licensePlate", FIELD )
        .constraint( new NotNullDef() )
        .constraint( new SizeDef()
            .min( 2 )
            .max( 14 ) )
    .property( "seatCount", FIELD )
        .constraint( new MinDef()
            .value ( 2 ) )
.type( RentalCar.class )
    .property( "rentalStation", METHOD )
        .constraint( new NotNullDef() ); 

如您所见,区别在于您现在必须实例化定义类。仅此而已。不是很糟糕,对吧?编程方法级别的验证看起来是这样的

ConstraintMapping mapping = new ConstraintMapping();
mapping.type( Car.class )
    .method( "drive", String.class, Integer.class )
        .parameter( 0 )
            .constraint( new NotNullDef() )
            .constraint( new MinDef().value ( 1 ) )
        .parameter( 1 )
            .constraint( new NotNullDef() )
        .returnValue()
            .constraint( new NotNullDef() )
    .method( "check" )
        .returnValue()
            .constraint( new NotNullDef() );   

您可以在 这里 找到本版本的完整变更日志。请通过 验证器论坛 和 Jira 问题跟踪器 提供反馈。

感谢Gunnar和Kevin再次主导了大部分工作。

祝您愉快!

附言:如果您对应该将什么内容纳入 Bean Validation 1.1 有任何意见,请告诉我们!


回到顶部