1. 业务需求
实战项目是一个 多用户 AI 对话系统,核心功能如下:
- 用户系统:支持注册和登录,每个用户的数据相互隔离
- 话题管理:用户可以创建多个对话话题,每个话题独立维护消息上下文
- AI 对话:用户发送消息后,系统调用 AI 模型生成回复,支持流式输出(打字机效果)
- 消息持久化:所有对话记录保存到数据库,刷新页面不丢失
2. 技术栈
2.1 后端技术选型
| 技术 | 用途 |
|---|---|
| Java 25 | 开发语言 |
| Spring Boot 4.x | 应用框架 |
| Spring WebFlux | 响应式 Web 框架,支持 SSE 流式响应 |
| R2DBC + H2 | 响应式数据库访问 |
| Spring AI + Ollama | AI 模型调用 |
| Spring Security | 安全框架 |
| JJWT | JWT Token 生成与验证 |
| spring-boot-starter-webflux-test | WebFlux 测试(JUnit 5 + WebTestClient) |
| spring-boot-starter-data-r2dbc-test | R2DBC 测试(StepVerifier) |
2.2 前端技术选型
| 技术 | 用途 |
|---|---|
| Vue 3 | 前端框架(Composition API + TypeScript) |
| Vite | 构建工具 |
| DaisyUI | UI 组件库(基于 Tailwind CSS) |
| Axios | HTTP 请求 |
| Vue Router | 前端路由 |
| Pinia | 状态管理 |
2.3 基础设施
| 技术 | 用途 |
|---|---|
| Ollama | 本地运行 AI 模型(如 Qwen、Llama 等) |
| H2 Database | 嵌入式数据库(开发环境,可替换为 PostgreSQL) |
| Docker | 容器化部署 |
3. 项目结构
前后端项目放在同一个仓库下,方便统一管理:
text
ai-chat/
├── ai-chat-backend/ # Spring Boot 后端项目
└── ai-chat-frontend/ # Vue 3 前端项目4. 系统架构
5. 前置要求
在开始之前,请确保你的开发环境满足以下条件:
- JDK 25
- Node.js 18+
- Ollama 已安装并运行(用于本地 AI 模型),可以参考 Ollama 快速入门 进行安装和配置。
6. 专栏概述
整个专栏分为 4 个阶段,每个阶段结束都有可运行的成果:
阶段一:项目骨架 搭建前后端项目,配置开发环境,验证基础通信。完成后你有一个能跑的空项目。
阶段二:用户系统 实现注册、登录、JWT 认证。完成后前端能登录,后端能识别用户身份。
阶段三:核心功能 接入 Spring AI,实现话题管理和 AI 对话。完成后你有一个功能完整的聊天系统。
阶段四:总结 回顾架构,探讨扩展方向。
7. 小结
梳理了系统需求、技术选型和整体架构。
| 知识点 | 说明 |
|---|---|
| 业务需求 | 多用户 AI 对话系统:用户系统、话题管理、AI 对话、消息持久化 |
| 后端技术栈 | Spring Boot 4 + WebFlux + R2DBC + H2 + Spring AI + Spring Security |
| 前端技术栈 | Vue 3 + Vite + DaisyUI + Axios + Vue Router + Pinia |
| 项目结构 | 前后端分离,同仓库管理,HTTP + SSE 通信 |
| 专栏阶段 | 项目骨架 -> 用户系统 -> 核心功能 -> 总结,每阶段有可运行成果 |
接下来介绍后端项目初始化,搭建 Spring Boot 4 项目骨架并配置基础依赖。