1. 项目概述与背景
在当今数字化社交时代,交友平台已成为人们拓展社交圈的重要工具。基于Spring Boot的交友平台项目,旨在构建一个高效、安全且用户友好的社交网络系统。这个平台不仅支持基础的注册登录功能,还提供了丰富的社交互动模块,包括论坛讨论、即时通讯、资讯浏览等,满足用户多样化的社交需求。
作为一名有多年Java开发经验的工程师,我在实际开发中发现Spring Boot框架的自动配置和依赖管理特性,能显著降低开发复杂度。本项目采用的技术栈包括:
- 后端:Spring Boot 2.7 + MyBatis Plus
- 数据库:MySQL 8.0
- 前端:Vue.js 3.x
- 部署:Tomcat 9.x
提示:选择Spring Boot而非传统Spring MVC的主要考虑是其内嵌服务器和starter依赖能简化部署,这对学生毕设和小型项目特别友好。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心功能设计解析
2.1 用户模块实现细节
用户模块采用分层架构设计:
code复制Controller层:UserController
Service层:UserServiceImpl
DAO层:UserMapper
2.1.1 注册流程优化
注册时采用BCrypt加密存储密码,关键代码如下:
java复制// UserController.java
@PostMapping("/register")
public Result register(@RequestBody User user) {
// 检查用户名是否存在
if(userService.existsUsername(user.getUsername())) {
return Result.error("用户名已存在");
}
// 密码加密
user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));
user.setCreateTime(LocalDateTime.now());
return userService.save(user) ? Result.success() : Result.error("注册失败");
}
避坑经验:
- 密码必须在前端加密后再传输,但后端仍需二次加密
- 用户创建时间建议使用服务器时间而非前端传递,避免时区问题
2.1.2 登录安全设计
采用JWT+Redis实现无状态认证:
- 用户登录成功后生成Token
- Token存入Redis并设置过期时间(默认2小时)
- 每次请求通过拦截器验证Token有效性
java复制// JwtInterceptor.java
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
S
