当前位置: 首页 > news >正文

Hibernate Validator 数据验证

Hibernate Validator不仅可以用于Controller层的参数验证,还可以在Service层、Repository层或任何其他层中使用。

手动验证

在任何地方都可以通过Validator接口手动触发验证:

public class ManualValidationExample {public void validateObject(Object obj) {// 获取验证器ValidatorFactory factory = Validation.buildDefaultValidatorFactory();Validator validator = factory.getValidator();// 执行验证Set<ConstraintViolation<Object>> violations = validator.validate(obj);// 处理验证结果if (!violations.isEmpty()) {for (ConstraintViolation<Object> violation : violations) {System.out.println(violation.getPropertyPath() + ": " + violation.getMessage());}throw new IllegalArgumentException("Validation failed");}}
}

在Service层使用

在方法调用时进行验证,首先在类上添加@Validated注解以启用方法验证

@Service
@Validated
public class UserService {public void createUser(@NotNull @Valid User user) {// 业务逻辑}public void updateEmail(@Min(1) Long userId, @NotBlank @Email String email) {// 业务逻辑}
}

在Entity/DTO中使用

Hibernate Validator可以直接用于任何Java类:

public class Product {@NotNullprivate Long id;@NotBlank@Size(max = 100)private String name;@Positiveprivate BigDecimal price;// getters and setters
}

相关文章:

  • 曼昆《经济学原理》第九版 第八章税收的成本
  • 持续交付的进化:从DevOps到AI驱动的IT新动能
  • Zustand 第二章(状态处理)
  • BOM(Browser Object Model)核心对象手册
  • Windows设置之网络路由
  • Vue2面试题(一)
  • Java核心技术-卷I-读书笔记(第十二版)
  • 从0开始学习R语言--Day20-ARIMA与格兰杰因果检验
  • OpenJudge | 大整数乘法
  • 热成像实例分割电力设备数据集(3类,838张)
  • CMS内容管理系统的设计与实现:架构设计
  • DeepSeek11-Ollama + Open WebUI 搭建本地 RAG 知识库全流程指南
  • ABP vNext 与 HDFS 数据湖存储集成
  • DiscuzX3.5发帖json api
  • QEMU源码全解析 —— 块设备虚拟化(24)
  • eBPF系列--BCC中提供的BPF maps高级抽象如何映射到内核的BPF maps?
  • 第23讲、Odoo18 二开常见陷阱
  • 如何思考?思维篇
  • 数学:”度量空间”了解一下?
  • STM标准库-TIM旋转编码器
  • 网站关键字多少合适/种子搜索引擎 磁力天堂
  • 网站建设方式有哪些/今日国内新闻头条
  • 做快递网站制作/网站优化靠谱seo
  • 北京企业建站程序/网页搜索引擎大全
  • 网站排名第一/武汉竞价托管公司
  • 网站域名查询/新产品上市推广策划方案