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());
    }
}
相关推荐
唐青枫21 小时前
Java JDBC 实战指南:从 Connection 到事务和连接池
java
用户14748530797421 小时前
CodeX使用Skill生成游戏美术和音乐资源,一分钟入门
后端
Melody12321 小时前
用 abort 中断 AI 流式请求,我之前做错了
后端
onething3651 天前
Spring Boot + Spring AI 从入门到实战:7天转型计划 Day 5 —— SSE 流式输出 + 打字机效果
人工智能·后端·全栈
一个做软件开发的牛马1 天前
MyBatis-Plus 从零实战:完整搭建可运行 Demo,BaseMapper 零 SQL、Wrapper 条件构造、分页插件与代码生成器详解
java·后端
用户3721574261351 天前
Java 处理 PDF 图片:提取 PDF 中的图片,并压缩 PDF 图片体积
java
码事漫谈1 天前
AI 编程的「三体」架构:OpenSpec + Superpowers + GStack 如何让一个开发者撑起整个研发团队
后端
吃饱了得干活1 天前
深入解析 OpenFeign:从重试、拦截到负载均衡的全维度实践
后端
onething3651 天前
Spring Boot + Spring AI 从入门到实战:7天转型计划 Day 6 —— 业务完善 + 会话消息预览
人工智能·后端·全栈
用户3721574261351 天前
Java 打印 Word 文档:从基础打印到高级设置
java