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());
    }
}
相关推荐
YDS8291 分钟前
SpringCloud —— MQ的可靠性保障和延迟消息
后端·spring·spring cloud·rabbitmq
汪不止6 分钟前
使用模板方法模式实现可扩展的动态查询过滤器
java·模板方法模式
Facechat9 分钟前
视频混剪-时间轴设计
java·数据库·缓存
无限大622 分钟前
为什么"区块链"不只是比特币?——从加密货币到分布式应用
后端
洛神么么哒28 分钟前
freeswitch-初级-01-日志分割
后端
蝎子莱莱爱打怪36 分钟前
我的2025年年终总结
java·后端·面试
沛沛老爹37 分钟前
Web开发者5分钟上手:Agent Skills环境搭建与基础使用实战
java·人工智能·llm·llama·rag·agent skills
奋进的芋圆43 分钟前
TokenRetryHelper 详解与 Spring Boot 迁移方案
java·spring boot·后端
毕设源码-赖学姐1 小时前
【开题答辩全过程】以 音像租借管理系统为例,包含答辩的问题和答案
java
云上小朱1 小时前
软件部署-在k8s部署Hadoop集群
后端