一、工具類編寫
package com.example.demo.util;
import java.util.Optional;
import javax.validation.Validation;
import javax.validation.Validator;
/**
* 校驗工具類
*/
public class ValidationUtils {
private static Validator VALIDATOR = Validation.buildDefaultValidatorFactory().getValidator();
private ValidationUtils(){
}
public static <T> String validate(T obj, Class<?>... classes) {
StringBuilder sb = new StringBuilder();
Optional.ofNullable(VALIDATOR.validate(obj, classes)).ifPresent(res -> res.forEach(cv ->
sb.append("#").append(cv.getPropertyPath().toString()).append(cv.getMessage())
));
return sb.toString();
}
}
二、Pojo類編寫
package com.example.demo.entity;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotNull;
@Data
public class Person {
@NotNull(message = "{用戶Id}不能爲空")
@Length(min=10, max=20, message = "{用戶Id}長度必須在10到20之間")
String personId;
@NotNull(message = "{用戶姓名}不能爲空")
@Length(min=10, max=20, message = "{用戶姓名}長度必須在10到20之間")
String personName;
}
三、測試
package com.example.demo.util;
import com.example.demo.entity.Person;
import org.junit.jupiter.api.Test;
public class ValidationUtilTest {
@Test
public void test(){
Person person = new Person();
person.setPersonId("12345610");
System.out.println(ValidationUtils.validate(person));
}
}
結果:
#personName{用戶姓名}不能爲空#personId{用戶Id}長度必須在10到20之間
注意:必須引入org.hibernate.validator包