自从Validator 5.1的第一个alpha版本发布以来已经有一段时间了,但正如俗话所说:“欲速则不达” :-) Hibernate宇宙中正在发生很多事情,在过去的几个月里,我们特别忙于诸如搜索和OGM等项目。不用说,还有新的Hibernate网站。唉,如果能有更多的贡献者伸出援手(提示,提示)。
尽管如此,我们还是找到了时间来改进验证器,结果是Hibernate Validator 5.1.0.Beta1,它有一些新的功能和错误修复。最显著的功能是引入了@UnwrapValidatedValue以及相应的ValidatedValueUnwrapperSPI(见HV-819)。其理念是,在某些情况下,要验证的值包含在包装类型中,人们必须为每种约束类型和约束添加自定义ConstraintValidator实现。想想Java 8的Optional或JavaFX的Property类型。例如,在JavaFX中,您可能会有
@NotBlank
@UnwrapValidatedValue
private Property<String> name = new SimpleStringProperty( "Foo" );
Validator validator = Validation.byProvider( HibernateValidator.class )
.configure()
.addValidatedValueHandler( new PropertyValueUnwrapper() )
.buildValidatorFactory()
.getValidator();
还有什么值得提到的?感谢Brent Douglas对Hibernate Validator的配置和检测到一些潜在的内存泄漏 - 请参阅 HV-838 和 HV-842。这些问题现在已修复。
还要感谢Victor Rezende dos Santos和Shin Sang-Jae。Victor发现了一个与巴西CPF约束相关的问题,导致其重构 HV-808,以及@ModCheck的弃用@ModCheck和引入了专门的@Mod10和@Mod11约束作为替代。另一方面,Shin提供了ValidationMessages属性包的韩语翻译。
最后但同样重要的是,我们还通过减少元数据的内存消耗量来改进了内存占用(HV-589)。
总计解决了 29 个问题。在我看来,这并不算差,并且确实值得升级到Validator 5.1。
Maven工件位于JBoss Maven存储库中的GAV org.hibernate:hibernate-validator:5.1.0.Beta1 下,并且分发包可在SourceForge上找到。您可以通过Hibernate Validator 论坛或使用hibernate-validator标签在StackOverflow上发送反馈。
祝您享受!