Hibernate Validator 6.0.0.Alpha2 改进对 Bean Validation 2.0 的支持-阿里云开发者社区

开发者社区> 寒凝雪> 正文

Hibernate Validator 6.0.0.Alpha2 改进对 Bean Validation 2.0 的支持

简介:
+关注继续查看

Hibernate Validator 6.0.0.Alpha2 发布了。Hibernate Validator 6 将成为 Bean Validation 2.0 的参考实现。此 Alpha2 版本与 Bean Validation 规范的 2.0.0.Alpha2 版本协调。

请注意,Hibernate Validator 6 需要 JDK 8 或更高版本。

自 Alpha1 以来的新功能

改进对容器元素验证的支持

Container element validation support is the big new feature of Bean Validation 2.0 and it got some more love during this cycle.

编程 API 和 XML 支持

To obtain the equivalent of:

public class FishTank {
      
          private Optional<@Valid FishTankModel> model;
      
          private Map<@Size(min = 3, max = 10) String, @Min(1) Integer> fishCountByType;
      }

it is now possible to declare container element type constraints and cascaded validation either via an XML mapping configuration (which is part of the Bean Validation 2.0 specification):

[...]
           class="com.acme.FishTank" ignore-annotations="false">
               name="model">
                  
                       />
                  
              
               name="fishCountByType">
                   typeArgumentIndex="0">
                       annotation="javax.validation.constraints.Size">
                           name="min">
                              3
                          
                           name="max">
                              10
                          
                      
                  
                   typeArgumentIndex="1">
                       annotation="javax.validation.constraints.Min">
                           name="value">
                              1
                          
                      
                  
              
          
      [...]

or via the (implementation specific) programmatic 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 ) );

其他改进

We also made a couple of more minor improvements:

the TYPE_ARGUMENT node type has been renamed to CONTAINER_ELEMENT (type argument don&rsquo;t make sense for annotated array elements)

we allow per context custom value extractors

we allow value extractors to be contributed using the service loader mechanism

we allow to specify value extractors using XML configuration

we explore the parent classes and interfaces to search the ValueExtractor definition

支持添加到 Bean Validation 2.0 的新约束

In the Alpha2 release of Bean Validation 2.0, we introduced the following new constraints:

@NotBlank: check that a char sequence is not blank (i.e. not null, and length of trimmed char sequence > 0)

@NotEmpty: check that an element (char sequence, collection, array) is not null and not empty

@Email: check that a char sequence is a valid email

@Positive: check that a number is positive

@Negative: check that a number is negative

We added support for these new constraints to Hibernate Validator.

性能改进

We started to run a few benchmarks on Hibernate Validator 6 and we fixed a few performance regressions.

6.0.0.Alpha2 is now significantly faster than 5.4, mostly thanks to the new ValueExtractor design.

获取 6.0.0.Alpha2

To get the release with Maven, Gradle etc. use the GAV coordinates org.hibernate.validator:{hibernate-validator|hibernate-validator-cdi|hibernate-validator-annotation-processor}:6.0.0.Alpha2. Note that the group id has changed from org.hibernate (Hibernate Validator 5 and earlier) to org.hibernate.validator (from Hibernate Validator 6 onwards).

Alternatively, a distribution bundle containing all the bits is provided on SourceForge (TAR.GZ, ZIP).

反馈, issues, 建议?

To get in touch, use the usual channels:

hibernate-validator tag on Stackoverflow (usage questions)

User forum (usage questions, general feedback)

Issue tracker (bug reports, feature requests)

Mailing list (development-related discussions)

Bean Validation development mailing list (discussions about the Bean Validation specification)

下一步是什么?

Bean Validation 2.0 和 Hibernate Validator 6 仍在积极开发中,会定期发布新的 alpha 版本。

本文来自开源中国社区 [http://www.oschina.net]

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Spring Cloud Alibaba基础教程:支持的几种服务消费方式(RestTemplate、WebClient、Feign)
通过《Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现》一文的学习,我们已经学会如何使用Nacos来实现服务的注册与发现,同时也介绍如何通过LoadBalancerClient接口来获取某个服务的具体实例,并根据实例信息来发起服务接口消费请求。
2599 0
阿里巴巴小程序繁星计划技术能力支持指南
阿里巴巴小程序繁星计划技术能力汇总(不断更新) 一、多平台小程序技术专家团指导1、阿里云小程序云支持群小程序云官方用于客户需求反馈和沟通的钉钉群,阿里云多位技术专家在线辅导答疑(补充二维码) 2、支付宝小程序交流群本群是支付宝小程序开发者交流群,欢迎大家在群内交流支付宝小程序开发、运营的经验 二、在线技术开发文档支持 三、小程序相关技术社区1、阿里小程序云介绍:链接:https://yq.
1577 0
Alibaba Arthas 3.1.2版本:增加logger/heapdump/vmoption命令,支持tunnel server
![Arthas](https://alibaba.github.io/arthas/_images/arthas.png) `Arthas`是Alibaba开源的Java诊断工具,深受开发者喜爱。 * Github: https://github.com/alibaba/arthas * 文档:https://alibaba.github.io/arthas Arthas
521 0
创建支持多种屏幕尺寸的Android应用
Android涉及各种各样的支持不同屏幕尺寸和密度的设备。对于应用程序,Android系统通过设备和句柄提供了统一的开发环境,大部分工作是校正每一个应用程序的用户界面到它显示的屏上。与此同时,系统提供APIs允许你控制应用界面为特定的屏幕尺寸和密度,为不同屏幕的配置提供最优化的用户界面设计。
761 0
意大利:推出250亿欧元经济援助计划,100亿支持就业和员工
为了减轻疫情对家庭和企业的影响,意大利政府宣布了一项250亿欧元的援助计划。
212 0
【转】如何在Windows+VS2005使用最新静态libcurl 7.35.0获取网页数据,支持HTTPS
地址: http://blog.csdn.net/hujkay作者:Jekkay Hu(34538980@qq.com)关键词:Windows,curl,ssl,  visual c++ 2005, libcurl, https,网页抓取时间: 2014/2/18 1.
832 0
阿里巴巴开源OpenJDK长期支持版本,Java全球管理组织唯一中国企业
3月19日据媒体报道,阿里巴巴即将开源OpenJDK长期支持版本Alibaba Dragonwell,为全球Java界开发者提供了一个新的选择。
12301 0
+关注
5854
文章
223
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载