直接在字段上加@Email注解即可完成基础邮箱格式校验,它基于Jakarta Bean Validation规范,验证RFC 5322兼容的基本格式,包括唯一@符号、合法用户名与域名结构,但不检查DNS或SMTP连通性。

直接在字段上加 @Email 注解即可完成基础邮箱格式校验,它由 Jakarta Bean Validation(原 javax.validation)规范提供,无需手写正则,也不依赖额外工具类。
需要的依赖和环境准备
确保项目已引入 Bean Validation 实现,如 Hibernate Validator(Spring Boot 项目默认包含):
- Spring Boot 3.x+:使用
jakarta.validation包,注解位于jakarta.validation.constraints.Email - 老版本(Spring Boot 2.x)可能仍用
javax.validation.constraints.Email,注意包路径差异 - 非 Spring 项目需显式添加依赖,例如 Maven 中加入:
@Email 的实际用法示例
将注解加在 String 类型字段上,配合 @Valid 或 @Validated 触发校验:
public class UserRequest {@Email(message = "邮箱格式不合法")
private String email;
// getter/setter...
}
在 Controller 方法参数中启用校验:
分析 Java Spring Boot 后端 Controller 代码,自动生成 Markdown 格式的接口文档。当用户说“生成 Java 接口文档”、“生成 API 文档”、“从 Spring 代码生成文档”时触发。
public Result register(@Valid @RequestBody UserRequest request) {
return Result.success();
}
@Email 校验的具体规则
它验证的是 RFC 5322 兼容的**基本格式合法性**,包括:
- 必须包含且仅含一个 '@' 符号
- ‘@’ 前为非空用户名(可含字母、数字、点、下划线、加号等,但不能以点开头/结尾)
- ‘@’ 后为有效域名结构(至少含一个点,顶级域长度 2–6 字符,不含连续点)
- 不进行 DNS 查询或 SMTP 连通性检查(即不验证邮箱是否真实存在或可收信)
例如以下会被判为合法:test@gmail.com、user+tag@sub.example.co.uk;而 @gmail.com、test@.com、test@domain..com 均不通过。
注意事项和常见问题
- @Email 不处理首尾空格 —— 若允许用户输入带空格的邮箱,建议先 trim,或搭配 @NotBlank 使用
- 默认错误消息是英文,可通过
message属性自定义,如:@Email(message = "请输入正确的邮箱地址") - 若需更严格的校验(如限制特定域名、排除临时邮箱),需自定义 ConstraintValidator
- 注意:@Email 对国际化域名(IDN)支持有限,生产环境如有中文域名需求,应补充额外处理
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










