Java:hibernate-validator驗證數據

依賴

https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator

<dependency>
     <groupId>org.hibernate.validator</groupId>
     <artifactId>hibernate-validator</artifactId>
     <version>6.1.2.Final</version>
 </dependency>

使用示例

package org.example;

import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Set;

class Person {
    @NotBlank
    @NotNull
    private String name;

    @Min(0)
    @Max(150)
    private int age;

    @NotNull
    private boolean gender;

    public Person(String name, int age, boolean gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }
}

public class ValidatorTest {
    public static void main(String[] args) {


        // 獲取驗證器
        ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
        Validator validator = factory.getValidator();

        // 數據驗證
        Person person = new Person("", 151, false);
        Set<ConstraintViolation<Person>> violations = validator.validate(person);

        // 打印驗證結果
        for(ConstraintViolation violation: violations){
            System.out.println(violation.getPropertyPath() + violation.getMessage());
        }
        /**
         * age最大不能超過150
         * name不能爲空
         */

    }
}

參考
https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章