发布于 2017-03-30 23:32:09 | 207 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

Hibernate Validator Bean 验证框架

用Annotations 给类或者类的属性加上约束(constraint),在运行期检查属性值是很优雅的.Hibernate Validator就是这样的一个框架.该框架是十分容易的(就像参考文档中宣称的那样),几乎没有什么学习曲线,Validator 是一个验证框架 不需要和Hibernate的其他部分绑定就可以使用,只要在你的项目中添加Hibernate-annotations.jar库就可以了.


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.GZZIP).

反馈, issues, 建议?

To get in touch, use the usual channels:

下一步是什么?

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

详细更新内容请参阅发布主页



历史版本 :
Hibernate Validator 6.0.7.Final 发布
Hibernate Validator 6.0.6 发布,新增约束规则
Hibernate Validator 6.0.5 发布,包含重要的 bug 修复
Hibernate Validator 6.0.4.Final 发布,跟进 WildFly 11
Hibernate Validator 6.0.3.Final 发布,新增约束规则
Hibernate Validator 6.0.1.Final,支持 JSR 380 规范
Hibernate Validator 6.0.0.CR2 发布
Hibernate Validator 6.0.0.CR1 发布
Hibernate Validator 6.0.0.Beta1 发布
Hibernate Validator 6.0.0.Alpha2 发布,改进对 Bean Validation 2.0 的支持
Hibernate Validator 5.4.1.Final,Bean 验证框架
Hibernate Validator 6.0.0.Alpha1 发布
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务