非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
六、真是简单易用!虽然这个库重复“发明”了轮子。
七、你注意到了吗?结果是自动国际化了的!
上善若水,水利万物而不争。