spring数据校验Validation

文章目录

需要的依赖

xml 复制代码
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-validation</artifactId>
</dependency>

创建校验对象Validator

测试的实体类

java 复制代码
//创建实体类,定义属性及方法,供校验测试
@Data
public class Person {
	@NotBlank(message = "名称不能为空")
	@Size(max = 255, message = "名称长度不能超过255个字符")
    private String name;
    private int age;
}

校验案例

java 复制代码
public static void main(String[] args) {
    // 校验的对象
    ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
    Validator validator = factory.getValidator();
    // 需要校验的数据
    Person person = new Person();
    // 校验结果,如果有校验未通过的则返回校验未通过的信息
    Set<ConstraintViolation<Person>> validate = validator.validate(person);
    // 经校验信息转成list并打印
    System.out.println("===" + validate.stream().map(ConstraintViolation::getMessage).collect(Collectors.toList()));
}

创建Validator工具类

java 复制代码
public class ValidationUtil {

    private static final Validator validator;

    static {
        try (ValidatorFactory factory = Validation.buildDefaultValidatorFactory()) {
            validator = factory.getValidator();
        }
    }

    public static <T> List<String> validate(T t) {
        return validator.validate(t).stream().map(ConstraintViolation::getMessage).collect(Collectors.toList());
    }
}
相关推荐
自进化Agent智能体7 分钟前
Hermes Agent 消息网关——连接 20+ 聊天平台
后端
你为她披上外套时我正站在窗外8 分钟前
subtitler v2.0:从稳健到极致
后端
CHANG_THE_WORLD10 分钟前
逐层拆解:C++ 虚函数从对象内存到手工调用的完整过程
java·开发语言·c++
我登哥MVP11 分钟前
走进 Gang of Four 设计模式:过滤器模式
java·设计模式·过滤器模式
吃饱了得干活18 分钟前
实时弹幕应该怎么搞?一篇带你从入门到生产级实战
java·后端
用户02071992077220 分钟前
WebSocket 从建立连接到稳定运行
后端
你为她披上外套时我正站在窗外20 分钟前
subtitler v2.0 的零拷贝设计:从 2000 次分配到 0 次
后端
tianyuanwo35 分钟前
深入掌握 java -jar 命令:从基础到 Jenkins Agent 实战
java·jenkins·jar
IT_陈寒36 分钟前
Vite的静态资源路径搞得我头秃,原来这样配才对
前端·人工智能·后端
XS03010643 分钟前
Spring AI第一课
数据库·人工智能·spring