非WEB项目中引入Hibernate Validator

前言:

网上一些朋友分享了关于hibernate-validator的使用方法,但是不是缺少关联库信息,就是提供的参考代码中缺少自定类。

希望我这一篇博客能够让你顺利的跑出预期的结果。

如果有错,可以给我留言。

英文好的朋友可以参考官网的getting started。

http://hibernate.org/validator/documentation/getting-started/

一、环境

hibernate-validator库必须运行的JDK版本为1.6及以上。

二、hibernate-validator库及依赖

1 classmate-1.3.1.jar
2 hibernate-validator-5.3.1.Final.jar
3 javax.el-2.2.4.jar
4 javax.el-api-2.2.4.jar
5 jboss-logging-3.3.0.Final.jar
6 validation-api-1.1.0.Final.jar

三、假设我们构造了一个Car类

 1 public class Car {
 2
 3     @NotNull
 4     private String manufacturer;
 5
 6     @NotNull
 7     @Size(min = 2, max = 14)
 8     private String licensePlate;
 9
10     @Min(2)
11     private int seatCount;
12
13     public Car(String manufacturer, String licencePlate, int seatCount) {
14         this.manufacturer = manufacturer;
15         this.licensePlate = licencePlate;
16         this.seatCount = seatCount;
17     }
18
19     public String getManufacturer() {
20         return manufacturer;
21     }
22
23     public void setManufacturer(String manufacturer) {
24         this.manufacturer = manufacturer;
25     }
26
27     public String getLicensePlate() {
28         return licensePlate;
29     }
30
31     public void setLicensePlate(String licensePlate) {
32         this.licensePlate = licensePlate;
33     }
34
35     public int getSeatCount() {
36         return seatCount;
37     }
38
39     public void setSeatCount(int seatCount) {
40         this.seatCount = seatCount;
41     }
42
43 }

四、如何校验呢?我们看看这个测试类

 1 public class CarTest {
 2
 3     public static void main(String[] args) {
 4         ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
 5         Validator validator = factory.getValidator();
 6         Car car = new Car(null, "苏A999999", 1);
 7
 8         Set<ConstraintViolation<Car>> constraintViolations = validator.validate(car);
 9         for (ConstraintViolation<Car> constraintViolation : constraintViolations)
10             System.out.println("错误:" + constraintViolation.getMessage());
11     }
12 }

五、结果如何?

1 十一月 08, 2016 10:31:00 下午 org.hibernate.validator.internal.util.Version <clinit>
2 INFO: HV000001: Hibernate Validator 5.3.1.Final
3 错误:不能为null
4 错误:最小不能小于2

六、真是简单易用!虽然这个库重复“发明”了轮子。

七、你注意到了吗?结果是自动国际化了的!

时间: 2024-11-09 07:53:35

非WEB项目中引入Hibernate Validator的相关文章

在Java Web项目中引入Mondrian多维分析框架

一,Mondrian简介 Mondrian是一个开源项目,一个用Java写成的OLAP引擎.它用MDX语言实现查询,从关系数据库(RDBMS)中读取数据.然后经过Java API以多维的方式对结果进行展示. Mondrian的使用方式同JDBC驱动类似.可以非常方便的与现有的Web项目集成. Mondrian OLAP 系统由四个层组成,可分为从最终用户到数据中心, 顺序为: 1表现层(the presentation layer) 2维度层(the dimensional layer) 3集合

非web项目中使用XDT的实例

概述 XDT是Asp.net 4.0中的一个新特性,可以让使用者在Web项目中在不同的生成类型下,快速切换配置文件(如在debug场景下使用测试配置数据库,在Release场景下使用正式配置数据库). 但在非web项目中,VS并未提供如此方便的功能.这时如果我们同样想使用xdt transforms的功能,就需要自己配置MSbuild文件. 在本例中我们是通过修改MSBuild配置文件,来使非web项目同样可以使用XDT功能. MSBuild全称(Microsoft Build Engine),

spring 项目中使用 hibernate validator验证输入参数

1 hibernate validator 官方文档:https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/ 在 springboot 项目中 spring-boot-starter-web 已经包含了 hibernate-validator 可以直接使用.否则需要在 maven 依赖中添加依赖项. <dependency> <groupId>org.hibernate.valid

Eclipse中在web项目中添加hibernate

创建web项目 创建一个web项目,FirstHibernatePro 创建数据库连接 创建一个数据库连接,这里使用的是Mysql数据库:window-->show View-->Data Source Explorer,然后在Database Connections右键 New,选择Mysql,然后去添加自己的数据库连接,并且添加详细的配置和加入相应的数据库驱动包 然后选择ok,开始测试自己的数据库连接,最后finish如果Database Source Exploer中出现了自己的数据库以

非web项目中使用XDT的实例(续)

简化 上个实例中,我们是引用了target文件来遍历项目中的xdt项. 当项目比较小,我们又只需要针对固定的config文件进行更替时,可以使用更简化的方法 不进行项目配置文件中的插入<Import Project="$(MSBuildExtensionsPath)\Custom\TransformFiles.targets" /> 而直接写入代码 <UsingTask TaskName="TransformXml" AssemblyFile=&q

Jfinal数据库操作在WebService或非web项目中的使用

接触上jfinal后就基本不使用其它框架了,一直在web开发中使用,最近做了个小的WebService应用,还是使用jfinal操作数据库,在这里分享下使用经验. 我的环境是三个oracle数据库,一个数据库接收数据,然后分发数据到另外两个数据库,使用jfinal的多数据源功能刚好满足要求. 编写数据库初始化类: 直接上代码 package ynitil.pekk.ws.common; import java.util.List; import ynitil.pekk.ws.model.Cltx

在Web项目中使用MEAN堆栈的7大理由

Web开发的过程中会涉及各种技术的应用,其中比较突出的是Web服务器.库.前端框架和数据库系统.如今,开发人员使用工具和技术的结合来更加方便和快捷地进行web开发.例如,LAMP,Linux(操作系统).Apache(Web服务器).MySQL(数据库管理系统)和PHP.Perl或Python(服务器端脚本语言).同样,在Web开发中一个新的技术堆栈也越来越受到开发人员的欢迎,而MEAN就是这样一个堆栈! MEAN是MongoDB.Express.AngularJS 和 Node.js的首字母缩

maven web项目中整合ssm框架(连接Mysql数据库)

前面说完怎么样创建maven web项目,这篇继续向web项目中整合进ssm(spring+springmvc+mybatis)的框架. 先发个目录图片,让萌新们知道下面提到的文件是创建在什么地方. 1.web.xml文件 修改如下: <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/

Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问

本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这部分内容需要以下Jar包支持 mysql-connector:MySQL数据库连接驱动,架起服务端与数据库沟通的桥梁: MyBatis:一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架: log4j:Apache的开源项目,一个功能强大的日志组件,提供方便的日志记录: 修改后的pom.xm