情绪博物馆后端重构项目
项目概述
本项目是基于Spring Boot 3.4.8的情绪博物馆后端服务重构版本,从原有的Spring Boot 2.7.18升级而来。
重构进度
第一阶段:基础环境升级 ✅
已完成的工作
-
项目结构创建 ✅
- 创建了标准的Maven项目结构
- 配置了src/main/java和src/main/resources目录
-
Maven配置 ✅
- 创建了pom.xml文件
- 配置了Spring Boot 3.4.8作为父项目
- 添加了所有必要的依赖:
- Spring Boot Starters (Web, Security, WebSocket, Redis, Validation, Actuator)
- MyBatis-Plus 3.5.5
- JWT 0.12.3
- SpringDoc OpenAPI 3
- Hutool 5.8.25
- Lombok
-
配置文件 ✅
- application.yml (主配置文件)
- application-local.yml (本地环境配置)
- 配置了数据库连接、Redis、日志等
-
基础配置类 ✅
- SecurityConfig (Spring Security 6.x配置)
- MybatisPlusConfig (MyBatis-Plus配置)
- RedisConfig (Redis配置)
- AsyncConfig (异步配置)
- OpenApiConfig (OpenAPI配置)
- WebClientConfig (HTTP客户端配置)
- CozeConfig (Coze API配置)
-
主启动类 ✅
- EmotionMuseumApplication.java
- 配置了组件扫描、缓存、异步、事务管理
-
基础控制器 ✅
- HealthController (健康检查接口)
技术栈升级
- Spring Boot: 2.7.18 → 3.4.8 ✅
- Java版本: JDK 17 (当前使用,计划升级到JDK 21)
- Spring Security: 5.x → 6.x ✅
- MyBatis-Plus: 3.5.3.1 → 3.5.5 ✅
- JWT: 0.11.5 → 0.12.3 ✅
- API文档: Swagger → SpringDoc OpenAPI 3 ✅
当前状态
- ✅ 项目能够正常编译
- ✅ 基础配置完成
- ✅ 应用程序启动成功
第二阶段:核心功能重构 🔄
已完成的工作
-
实体类创建 ✅
- User (用户实体)
- DiaryPost (日记实体)
- Message (消息实体)
- Conversation (会话实体)
-
DTO类创建 ✅
- Result (通用响应DTO)
- LoginRequest/LoginResponse (登录相关DTO)
- RegisterRequest (注册DTO)
-
Mapper接口创建 ✅
- UserMapper (用户数据访问)
- DiaryPostMapper (日记数据访问)
- MessageMapper (消息数据访问)
- ConversationMapper (会话数据访问)
-
工具类创建 ✅
- JwtUtil (JWT工具类,适配JWT 0.12.3)
-
认证系统重构 ✅
- AuthService (认证服务接口)
- AuthServiceImpl (认证服务实现)
- AuthController (认证控制器)
- 支持用户注册、登录、登出、令牌刷新等功能
-
用户管理系统重构 ✅
- UserService (用户服务接口)
- UserServiceImpl (用户服务实现)
- UserController (用户控制器)
- 支持用户信息管理、密码修改、用户列表等功能
-
AI对话系统重构 ✅
- CozeApiService (Coze API服务接口)
- CozeApiServiceImpl (Coze API服务实现)
- AiChatService (AI聊天服务接口)
- AiChatServiceImpl (AI聊天服务实现)
- AiChatController (AI聊天控制器)
- 支持与Coze Bot的对话、会话管理、消息历史等功能
-
日记系统重构 ✅
- DiaryPostRequest (日记请求DTO)
- DiaryPostService (日记服务接口)
- DiaryPostServiceImpl (日记服务实现)
- DiaryPostController (日记控制器)
- 支持日记CRUD、AI点评、点赞、情绪标签等功能
-
WebSocket系统重构 ✅
- WebSocketConfig (WebSocket配置)
- ChatMessage (WebSocket消息DTO)
- WebSocketController (WebSocket控制器)
- 支持实时聊天、AI对话、消息推送等功能
-
社区系统重构 🔄
- Comment (评论实体)
- UserFollow (用户关注实体)
- CommentRequest/CommentResponse (评论DTO)
- CommentMapper/UserFollowMapper (数据访问层)
- CommentService/UserFollowService (服务接口)
- CommentServiceImpl (评论服务实现)
- 支持评论、回复、点赞、用户关注等功能
当前状态
- ✅ 认证系统重构完成
- ✅ 用户管理系统重构完成
- ✅ AI对话系统重构完成
- ✅ 日记系统重构完成
- ✅ WebSocket系统重构完成
- ✅ 社区系统基础重构完成
- ✅ JWT 0.12.3适配完成
- ✅ 基础数据访问层完成
- 🔄 继续其他核心功能重构
下一步计划
第二阶段:核心功能重构
-
认证系统重构
- 重构AuthController
- 升级JWT认证机制
- 优化Spring Security配置
-
AI对话系统重构
- 重构AiChatController
- 实现Coze API客户端
- 优化异步处理机制
-
用户管理系统重构
- 重构UserController
- 优化用户信息管理
-
日记系统重构
- 重构DiaryPostController
- 优化日记CRUD操作
运行说明
环境要求
- JDK 17+
- Maven 3.6+
- MySQL 8.0+
- Redis 7.0+
启动步骤
- 配置环境变量或修改application-local.yml中的数据库和Redis连接信息
- 执行编译:
mvn clean compile - 启动应用:
mvn spring-boot:run
访问地址
- 应用地址:http://localhost:19089
- API文档:http://localhost:19089/api/swagger-ui.html
- 健康检查:http://localhost:19089/api/health
注意事项
- 当前使用JDK 17,后续将升级到JDK 21
- 数据库和Redis需要提前启动并配置
- Coze API配置需要设置环境变量COZE_API_KEY和COZE_BOT_ID
问题记录
- Spring Boot Actuator依赖问题 - 已解决
- Spring Security 6.x配置调整 - 已解决
- 应用程序启动测试 - 进行中