Spring Boot – 使用 Hibernate Validator 进行数据校验

在构建安全且可靠的应用程序时,验证用户输入是至关重要的一环。Spring Boot 通过集成 Hibernate Validator(即 JSR 380 Bean Validation API 的参考实现)让这一过程变得非常简单。利用它,我们开发者可以使用诸如 @NotNull、@Size、@Email 等简单的注解,在数据模型上强制执行验证规则。

在本文中,我们将共同探讨如何实现以下目标:

  • 使用常见的验证注解。
  • 在实体类中应用这些注解。
  • 优雅地处理验证错误。
  • 暴露一个能自动验证输入的 REST API。

常见的 Hibernate Validator 注解

Hibernate Validator 提供了以下对软件开发非常有帮助的注解。

  • @NotNull: @NotNull 确保字段不能为 null,但允许空值(例如空字符串或空集合)。
  • @NotEmpty: @NotEmpty 确保字段不为 null 且也不为空,这意味着它必须至少包含一个元素(针对集合)或至少一个字符(针对字符串)。
  • @NotBlank: @NotBlank 仅适用于字符串,确保它们不为 null、不为空,并且至少包含一个非空白字符(即仅包含空格是不允许的)。
  • @Min: 必须满足给定的最小值限制。
  • @Max: 必须满足给定的最大值限制。
  • @Size: 字段大小必须在指定的长度限制范围内(小于或大于指定的字段大小)。
  • @Email: 可以使用此注解来验证电子邮件格式。
  • @Pattern: 必须满足给定的正则表达式模式。

分步实现指南

步骤 1:创建项目

请使用 Spring Initializr(或者你 IDE 的向导):

  • Project: Maven
  • Language: Java
  • Spring Boot: 3.x
  • Dependencies: Spring Web, Validation (spring-boot-starter-validation), Lombok (可选但很实用)

> 建议使用 Java 17+ 版本来配合 Spring Boot 3.x。

步骤 2:项目结构(极简版)

!项目结构

步骤 3:创建实体类

让我们创建一个实体类 GeekEmployee ,并在其字段上应用验证注解。

GeekEmployee.java

Java


CODEBLOCK_efc57a82

步骤 4:处理验证器异常

当验证失败时,Spring Boot 会抛出 MethodArgumentNotValidException。我们可以使用 @ControllerAdvice 全局处理此异常,并返回结构化的错误响应。

GlobalExceptionHandler.java:

Java


CODEBLOCK_320cce2b

现在,让我们尝试通过接受诸如 "geekEmployeeName"、"salary"、"geekEmailId" 和 "qualifications" 等输入来保存这些员工数据。我们需要一个 REST 控制器…

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/43637.html
点赞
0.00 平均评分 (0% 分数) - 0