本文从Hibernate Validator使用环境搭建开始,到初步地演示Hibernate数据校验的使用,并附上代码截图,使初学者有一个入门的印象。

一、开始准备

这一章将会向你展示如何开始Hibernate Validator,也就是这个Bean验证的参考实现。为了快速开始,你应该:

  • JDK8
  • Apache Maven
  • 一个网络连接(maven必须下载所需的库)

二、工程设置

为了使用Hibernate Validator 通过Maven工程,在pom.xml文件中简单的加入下面的依赖:

图片说明

这将临时引入对bean验证api的依赖(javax.validation:validation-api:2.0.1.Final)。

Hibernate Validator 需要一个统一的表达式语言(Unified Expression LanguageJSR341)的实现,用来计算在约束违反信息中的动态表达式。

当你的应用程序运行在Java EE容器中例如Jboss (作为一个EL的实现已经被提供在容器中)。在Java SE环境下,无论如何,你必须在pom文件中增加一个EL的实现作为依赖。

举个例子,你可以加下面这个使用JSR341参考实现的依赖:
图片说明

对于不能提供EL实现的环境来说,Hibernate Validator 正在提供一个12.9节“ParameterMessageInterpolator”。无论如何,这个插入器不是Bean验证指定的组件。

另外,项目还使用了另外两个包,为了方便的实现toString()方法和集合方面的方法。

图片说明

当然,为了测试数据校验的功能,还加入了单元测试,所以需要导入junit。

图片说明

好了,到这里pom中所有的包都导入完毕。下面开始代码展示。

三、代码展示

首先新建了一个Car类:

图片说明

里面有三个成员变量,他们三个上面加的注解,就是数据校验注解,根据其语义,基本可以知道其注解的功能:

  • @NotNull :非空注解。被注解的字符串不能为空。
  • @Size :大小注解。被注解的字符串,必须满足长度的大小限制。
  • @Min :最小值注解。被注解的数字,必须大于等于设置的value。

其中注解括号中的message属性,是当数据校验不通过时,提示的错误信息。另外为什么叫做Hibernate Validator,是因为这些个注解只是定义了一组规范,实现是在Hibernate中实现的,所以叫做Hibernate Validator。

上面代码截图中省略了getter、setter、toString方法。

下面是测试类的代码:

图片说明

图片说明

上图测试类中的测试方法是针对于每个注解可能出现的验证不通过的情况,分别做了测试。测试方法全部通过,并报出了对应的错误信息。这些详细在代码中。

下面是执行所有单侧结果:

图片说明