一、工具类编写
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包