zoukankan      html  css  js  c++  java
  • 非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

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

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

  • 相关阅读:
    简单讲解Asp.Net Core自带IOC容器ServiceCollection
    C#配置文件configSections详解
    学习Linq之前必须知道的几种语法糖
    学习Linq之前必须要了解的扩展方法
    学习学习学习学习!!!!!!!!!!!!
    SpringBoot自动配置原理
    OAuth2
    微服务搭建学习笔记(一) 认证中心搭建
    Vue 学习记录
    Vue实例(1)
  • 原文地址:https://www.cnblogs.com/yoyotl/p/6045004.html
Copyright © 2011-2022 走看看