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());
    }
}
相关推荐
zwxu_2 分钟前
基于vscode连接服务器实现远程开发
java·开发语言·vscode·golang
q__y__L3 分钟前
C# WaitHandle类的几个有用的函数
java·开发语言·c#
七七软件开发12 分钟前
二手交易 app 系统架构分析
java·python·小程序·系统架构·php
都叫我大帅哥20 分钟前
RabbitMQ生产者发布确认:从入门到精通,幽默解析与实战指南
java·rabbitmq
风象南27 分钟前
3s → 30ms!SpringBoot树形结构“开挂”实录:一次查询提速100倍
后端
用户61204149221327 分钟前
C语言做的汽车线路模拟查询系统
c语言·后端·设计模式
二级小助手1 小时前
计算机二级java选择题真题【内附解析】
java·计算机二级·全国计算机二级·二级java·java二级·java二级选择题·全国计算机java二级
Victor3561 小时前
MySQL(181)如何在MySQL中管理大数据量的表?
后端
鲨鱼辣椒_TUT1 小时前
Obsidian结合CI/CD实现自动发布
java·ci/cd·github
Victor3561 小时前
MySQL(182) 如何进行MySQL的分库分表?
后端