Java Validation

  1. pom.xml
<dependency>
    <groupId>javax.validationgroupId>
    <artifactId>validation-apiartifactId>
    <version>1.1.0.Finalversion>
dependency>
<dependency>
    <groupId>javax.annotationgroupId>
    <artifactId>javax.annotation-apiartifactId>
    <version>1.2version>
dependency>
<dependency>
    <groupId>org.hibernategroupId>
    <artifactId>hibernate-validatorartifactId>
    <version>5.2.4.Finalversion>
dependency>
  1. Person.java
import javax.validation.constraints.*;
import org.hibernate.validator.constraints.*;
import lombok.*;

@Data
public 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  List validate(T t) {
        Validator validator = factory.getValidator();
        Set> constraintViolations = validator.validate(t);

        List messageList = new ArrayList();
        for (ConstraintViolation 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 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
不是一个合法的电子邮件地址

Java Validation_第1张图片

你可能感兴趣的:(Java)