Java Validation

来源:互联网 发布:wind金融数据 编辑:程序博客网 时间:2024/06/03 20:08
  1. pom.xml
<dependency>    <groupId>javax.validation</groupId>    <artifactId>validation-api</artifactId>    <version>1.1.0.Final</version></dependency><dependency>    <groupId>javax.annotation</groupId>    <artifactId>javax.annotation-api</artifactId>    <version>1.2</version></dependency><dependency>    <groupId>org.hibernate</groupId>    <artifactId>hibernate-validator</artifactId>    <version>5.2.4.Final</version></dependency>
  1. Person.java
import javax.validation.constraints.*;import org.hibernate.validator.constraints.*;import lombok.*;@Datapublic class Person implements Serializable {    private int id;    @Min(18)    @Max(value=65)    private int age;    private String name;    @Length(max=10)    private String address;    @Past    private Date birthday;    private BigDecimal weight;    @Email    private String email;}
  1. 测试
import javax.validation.*;public class TestPersonValidator {    private static ValidatorFactory factory = Validation.buildDefaultValidatorFactory();    public static <T> List<String> validate(T t) {        Validator validator = factory.getValidator();        Set<ConstraintViolation<T>> constraintViolations = validator.validate(t);        List<String> messageList = new ArrayList<String>();        for (ConstraintViolation<T> constraintViolation : constraintViolations) {            messageList.add(constraintViolation.getMessage());        }        return messageList;    }    public static void main(String[] args) {        Person p = new Person();        p.setAge(100);        p.setEmail("qwer");        p.setAddress("阿阿斯顿发斯蒂芬斯蒂芬阿斯顿发撒旦法撒旦法");        List<String> validate = validate(p);        for (String string : validate) {            System.out.println(string.toString());        }    }}

控制台输出:
2016-11-15 11:23:39 INFO [org.hibernate.validator.internal.util.Version] HV000001: Hibernate Validator 5.2.4.Final
长度需要在0和10之间
最大不能超过65
不是一个合法的电子邮件地址

这里写图片描述

0 0
原创粉丝点击