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());
    }
}
相关推荐
code_li8 小时前
聊聊支付宝架构
java·开发语言·架构
CC.GG8 小时前
【Linux】进程概念(五)(虚拟地址空间----建立宏观认知)
java·linux·运维
以太浮标9 小时前
华为eNSP模拟器综合实验之- AC+AP无线网络调优与高密场景
java·服务器·华为
Mr__Miss9 小时前
JAVA面试-框架篇
java·spring·面试
小马爱打代码9 小时前
SpringBoot:封装 starter
java·spring boot·后端
STARSpace88889 小时前
SpringBoot 整合个推推送
java·spring boot·后端·消息推送·个推
码农幻想梦9 小时前
实验八 获取请求参数及域对象共享数据
java·开发语言·servlet
a努力。10 小时前
2026 AI 编程终极套装:Claude Code + Codex + Gemini CLI + Antigravity,四位一体实战指南!
java·开发语言·人工智能·分布式·python·面试
Dylan的码园10 小时前
功能包介绍 : calendar
java·jvm·eclipse
二川bro10 小时前
Java集合类框架的基本接口有哪些?
java·开发语言·python