注册系统MVC架构图

客户端(View,表现层)
功能:邮箱输入框/密码输入框/验证码输入框/“发送验证码”按钮/注册按钮
用户界面
• 邮箱输入框
• 密码输入框
• 验证码输入框
• 发送验证码按钮
• 注册按钮
操作:1.填写邮箱 2.点击发送验证码 3.接收验证码并填写 4.填写密码 5.提交注册 6.接收并展示结果(成功/格式错误/验证码无效/用户存在)
控制器(Controller,控制层)
核心组件:RegisterController(含两个核心接口)
发送验证码接口
• /api/register/send-code
• 接收邮箱参数
• 初步校验(非空)
• 调用Service发送验证码
• 封装响应
提交注册接口
• /api/register/submit
• 接收邮箱/验证码/密码参数
• 初步校验(非空/密码格式)
• 调用Service执行注册逻辑
• 封装响应
操作:1.触发“发送验证码”请求(携带邮箱) 2.触发“提交注册”请求(携带邮箱/验证码/密码)
业务逻辑层(Service,核心业务层)
核心组件:RegisterService(接口)+ RegisterServiceImpl(实现类)
验证码发送业务逻辑
• 邮箱格式深度校验
• 生成随机验证码
• 调用邮件服务发送
• 存储验证码到Redis
• 返回业务结果
提交注册业务逻辑
• 校验Redis中验证码有效性
• 调用DAO查询数据库
• 密码加密处理
• 调用DAO插入用户数据
• 失效Redis中验证码
操作:1.请求存储验证码(Redis) 2.校验用户是否存在 3.请求插入用户数据
数据存储层
验证码临时存储(Redis)
• 临时存储邮箱-验证码映射
• 带过期时间
• 支持快速查询/删除
• 操作:存储/查询/删除验证码
数据访问层(DAO/Mapper)
• 核心组件:UserDAO/UserMapper
• 查询用户:existsByEmail()
• 插入用户:saveUser()
• 执行数据库操作
数据存储层(Model,模型层)
用户实体(UserEntity)
• 封装用户信息
• id/email/encryptPassword
• createTime/state
物理数据库
• MySQL/PostgreSQL
• 用户表(t_user)
• 邮箱字段唯一索引
• 支持事务控制
反向流程:
验证码发送:Redis存储结果→Service→Controller→客户端(提示发送结果)
提交注册:数据库操作结果→DAO→Service(校验/失效验证码)→Controller→客户端(提示注册成功/验证码无效/用户已存在)