前言:
网上一些朋友分享了关于hibernate-validator的使用方法,但是不是缺少关联库信息,就是提供的参考代码中缺少自定类。
希望我这一篇博客能够让你顺利的跑出预期的结果。
如果有错,可以给我留言。
英文好的朋友可以参考官网的getting started。
一、环境
hibernate-validator库必须运行的JDK版本为1.6及以上。
二、hibernate-validator库及依赖
1 classmate-1.3.1.jar2 hibernate-validator-5.3.1.Final.jar3 javax.el-2.2.4.jar4 javax.el-api-2.2.4.jar5 jboss-logging-3.3.0.Final.jar6 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> constraintViolations = validator.validate(car); 9 for (ConstraintViolation constraintViolation : constraintViolations)10 System.out.println("错误:" + constraintViolation.getMessage());11 }12 }
五、结果如何?
1 十一月 08, 2016 10:31:00 下午 org.hibernate.validator.internal.util.Version2 INFO: HV000001: Hibernate Validator 5.3.1.Final3 错误:不能为null4 错误:最小不能小于2
六、真是简单易用!虽然这个库重复“发明”了轮子。
七、你注意到了吗?结果是自动国际化了的!