# 三月学习计划:从 Spring 全家桶到 AI Agent 网站 > 目标:以 Spring 生态为基础,Web 能力为骨架,AI Agent 开发与算法能力为扩展,最终交付一个具备前端交互能力的 AI Agent 网站。 --- ## 学习路线总览 ``` Month 1 Month 2 Month 3 ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Java + Spring │───▶│ Spring 进阶 │───▶│ AI Agent 开发 │ │ ORM(JPA+MP) │ │ Vue 3 前端 │ │ 算法入门 │ │ HTML/CSS/JS │ │ 工程化部署 │ │ 最终项目 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ ``` --- ## 前置准备(开始前 1-2 天完成) | 事项 | 说明 | |------|------| | 安装 JDK 17+ | 推荐 Eclipse Temurin / Amazon Corretto | | 安装 IDE | IntelliJ IDEA Community Edition | | 安装 Maven | Spring Boot 项目构建工具 | | 安装 Git | 版本管理 | | 安装 Postman | API 调试工具 | | 安装 VS Code | 前端开发用 | | 安装 Node.js 18+ | 前端环境 | --- ## 第一阶段:Java 基础 + Spring Boot 入门 + Web 基础(第 1-4 周) ### 第 1 周:Java 核心基础速通 **目标**:掌握 Java 基本语法,能写出简单程序。 | 天 | 学习内容 | 实践 | |----|---------|------| | 1 | JDK 安装、环境变量、Hello World、IDE 使用 | 跑通第一个程序 | | 2 | 变量、数据类型、运算符、字符串 | 写一个计算器 | | 3 | if/else、switch、for/while 循环 | 打印乘法表、猜数字游戏 | | 4 | 数组、ArrayList、方法定义与调用 | 写一个学生成绩管理器 | | 5 | 类与对象、构造方法、封装 | 定义一个 Student 类并实例化 | | 6 | 继承、多态、接口、抽象类 | 设计简单的动物继承体系 | | 7 | 异常处理、集合框架(List/Map/Set) | 用 Map 实现一个简易通讯录 | **本周产出**:一个命令行通讯录程序(增删改查)。 --- ### 第 2 周:Spring Boot 入门 **目标**:理解 Spring Boot 是什么,创建第一个 Web 项目。 | 天 | 学习内容 | 实践 | |----|---------|------| | 1 | Spring 框架是什么、IoC 和 DI 概念 | 手写一个简单的 IoC 容器理解原理 | | 2 | Spring Boot 项目结构、启动流程 | 用 Spring Initializr 创建项目 | | 3 | @RestController、@RequestMapping | 写第一个 "Hello World" API | | 4 | @GetMapping/@PostMapping、参数接收 | 实现 RESTful 风格的学生 CRUD | | 5 | @Service、@Repository 分层架构 | 重构代码为 Controller-Service-Repository | | 6 | application.yml 配置、多环境配置 | 配置开发/生产环境 | | 7 | 复习与总结 | 完成一个简单的 REST API 服务 | **本周产出**:一个基于内存的 RESTful 学生管理 API。 --- ### 第 3 周:ORM 双轨 —— JPA + MyBatis-Plus **目标**:同时掌握两种主流 ORM 框架,理解各自适用场景。 | 天 | 学习内容 | 实践 | |----|---------|------| | 1 | MySQL 安装、数据库/表的基本操作 | 创建 students 数据库和表 | | 2 | Spring Data JPA、Entity、Repository | 用 JPA 实现学生数据持久化 | | 3 | MyBatis-Plus 基础、Mapper、BaseMapper | 用 MyBatis-Plus 重写同一套 CRUD | | 4 | JPA vs MyBatis-Plus 对比总结 | 写一份对比笔记:API 风格、适用场景、性能差异 | | 5 | @Transactional、分页查询(两种框架写法) | 分别用 JPA 和 MP 实现分页和搜索 | | 6 | HTML 基础(标签、表单、布局) | 写一个静态学生列表页 | | 7 | CSS 基础(选择器、盒模型、Flexbox) | 美化学生列表页 | **本周产出**:分别用 JPA 和 MyBatis-Plus 实现的学生数据访问层,附带对比笔记。 > **快速参考:JPA vs MyBatis-Plus 选型** > > | 维度 | Spring Data JPA | MyBatis-Plus | > |------|----------------|--------------| > | 风格 | 自动生成 SQL(约定大于配置) | 半自动,SQL 可控性高 | > | 简单 CRUD | `JpaRepository` 零代码 | 继承 `BaseMapper` 零代码 | > | 复杂查询 | JPQL / Specification / QueryDSL | LambdaQueryWrapper / 手写 SQL | > | 灵活度 | 低 — SQL 是框架生成的 | 高 — 可以精确控制 SQL | > | 学习曲线 | 较陡(JPA 规范本身很重) | 较平缓(对 SQL 友好) | > | 适用场景 | 表关系复杂、面向对象建模 | 复杂 SQL、报表、多表联查 | > | 国内流行度 | 外企/传统企业多 | 互联网/中小团队首选 | > > **新手建议**:两个都学。简单 CRUD 用 JPA 体验"无 SQL"的快感;复杂查询用 MyBatis-Plus 体会 SQL 的掌控力。实际工作中两把刀都磨利,视场景出鞘。 --- ### 第 4 周:前端基础 + 项目整合 **目标**:补齐前端基础,理解 Spring MVC 核心,交付第一个完整项目。 | 天 | 学习内容 | 实践 | |----|---------|------| | 1 | JavaScript 基础(变量、函数、DOM 操作) | 用 JS 实现页面的增删按钮 | | 2 | fetch API 调用后端接口 | 前端页面调通后端 API | | 3 | Spring MVC 请求处理流程、拦截器 | 实现登录拦截器 | | 4 | 统一异常处理、参数校验(Bean Validation) | 添加全局异常处理和表单校验 | | 5 | RESTful API 设计规范、HTTP 状态码 | 规范化所有 API 接口 | | 6 | 跨域 CORS 配置、文件上传 | 实现头像上传功能 | | 7 | 阶段总结 & 第一个里程碑项目 | 前后端联调、代码整理、写 README | **里程碑项目**:学生管理系统 v1 —— Spring Boot + JPA/MyBatis-Plus + MySQL + 原生 JS 全栈应用。设计上同一套业务逻辑提供两个数据访问实现(JPA 版 + MP 版),通过配置切换。 --- ## 第二阶段:Spring 进阶 + 现代前端框架(第 5-8 周) ### 第 5 周:Spring 全家桶核心组件 **目标**:掌握 Spring Security 和常用中间件。 | 天 | 学习内容 | 实践 | |----|---------|------| | 1 | Spring Security 架构、过滤器链 | 引入 Security 依赖,配置基础认证 | | 2 | JWT 认证、登录/注册接口 | 实现 JWT 登录注册流程 | | 3 | 权限控制(RBAC)、方法级安全 | 实现角色权限管理 | | 4 | Redis 基础、Spring Cache | 用 Redis 缓存热点数据 | | 5 | Spring Boot Actuator、健康检查 | 配置应用监控端点 | | 6 | 参数校验进阶、自定义注解 | 写一个自定义校验注解 | | 7 | MyBatis-Plus 进阶(LambdaQueryWrapper、条件构造器、逻辑删除) | 用 MP 实现复杂查询和软删除 | **本周产出**:带安全认证和缓存的学生管理系统 v2。 --- ### 第 6 周:前端框架入门(Vue.js) **目标**:掌握 Vue 3 基础,能开发 SPA 应用。 | 天 | 学习内容 | 实践 | |----|---------|------| | 1 | Vue 3 介绍、创建项目(Vite)、组件基础 | 搭建 Vue 项目 | | 2 | 响应式数据(ref/reactive)、计算属性 | 实现一个计数器和一个 Todo List | | 3 | 指令(v-if/v-for/v-model)、事件处理 | 写一个动态表单 | | 4 | 组件通信(props/emits)、插槽 | 拆分 Todo List 为多个组件 | | 5 | Vue Router 路由、导航守卫 | 实现多页面导航 | | 6 | Pinia 状态管理 | 全局状态管理用户信息和 Token | | 7 | Axios 封装、请求拦截 | 封装 HTTP 客户端统一处理 JWT | **本周产出**:一个独立的前端 SPA 应用(Todo + 路由 + 状态管理)。 --- ### 第 7 周:前后端分离实战 **目标**:将 Vue 前端与 Spring Boot 后端完整对接。 | 天 | 学习内容 | 实践 | |----|---------|------| | 1 | 前后端分离架构设计 | 规划 API 接口文档 | | 2 | 登录注册页面 + JWT 对接 | 实现完整登录流程 | | 3 | CRUD 页面实现(列表、表单、删除) | 学生管理的完整前端 | | 4 | 分页组件、搜索、排序 | 列表页增加分页和搜索 | | 5 | 文件上传前端实现 | 头像上传和预览 | | 6 | 错误处理、Loading 状态、空状态 | 完善交互体验 | | 7 | Nginx 部署、前后端联调 | 本地部署完整应用 | **本周产出**:前后端分离的学生管理系统 v3(Vue 3 + Spring Boot)。 --- ### 第 8 周:工程化能力 **目标**:掌握测试和 API 文档等工程化技能。 | 天 | 学习内容 | 实践 | |----|---------|------| | 1 | 单元测试(JUnit 5 + Mockito) | 为 Service 层写单元测试 | | 2 | 集成测试(@SpringBootTest + H2) | 用 H2 内存数据库测试 | | 3 | Swagger/Knife4j API 文档 | 为所有接口生成文档 | | 4 | 阶段总结 & 第二个里程碑项目 | 代码审查、性能优化 | **里程碑项目**:学生管理系统 v4 —— 有测试、有文档的完整前后端分离项目,DAO 层同时提供 JPA 和 MyBatis-Plus 两套实现,可配置切换。 --- ## 第三阶段:AI Agent 开发 + 算法基础(第 9-12 周) ### 第 9 周:AI & LLM 基础 **目标**:理解大语言模型的基本概念和使用方式。 | 天 | 学习内容 | 实践 | |----|---------|------| | 1 | AI/ML 基本概念、LLM 是什么 | 了解 GPT/Claude/文心一言等模型 | | 2 | Prompt Engineering 基础 | 动手写各种 Prompt,体验不同效果 | | 3 | OpenAI API / 国内大模型 API 调用方式 | 用 Postman 调通一个大模型 API | | 4 | Spring AI 框架入门 | 集成 Spring AI 到 Spring Boot 项目 | | 5 | 对话接口实现(Chat Completion) | 实现一个简单的聊天 API | | 6 | Streaming 流式响应(SSE) | 实现打字机效果的流式对话 | | 7 | 上下文管理、多轮对话 | 实现带记忆的多轮对话 | **本周产出**:一个可以多轮对话的聊天机器人 API。 --- ### 第 10 周:AI Agent 核心概念 **目标**:理解 Agent 架构,实现带工具调用的 Agent。 | 天 | 学习内容 | 实践 | |----|---------|------| | 1 | Agent 是什么(感知-思考-行动) | 了解 ReAct / Plan-and-Execute 模式 | | 2 | Function Calling / Tool Use 原理 | 手动解析一次 Function Call 流程 | | 3 | Spring AI Function Calling 实现 | 定义并注册一个 Function 给模型调用 | | 4 | 多工具协作(天气、搜索、计算器) | 注册多个 Tool,让模型自动选择调用 | | 5 | Agent 记忆系统(短期 + 长期记忆) | 用 Redis 实现对话历史持久化 | | 6 | RAG(检索增强生成)基础 | 用 Spring AI + 向量数据库做知识库问答 | | 7 | Prompt 模板管理与优化 | 设计并管理多个 Prompt 模板 | **本周产出**:一个支持 Function Calling 和多轮对话的 Agent 后端。 --- ### 第 11 周:算法入门 + Agent 前端 **目标**:学习基础算法,构建 Agent 前端交互界面。 | 天 | 学习内容 | 实践 | |----|---------|------| | 1 | 时间复杂度、空间复杂度、大 O 表示法 | 分析常见代码的时间复杂度 | | 2 | 排序算法(冒泡/快排/归并) | 手写三种排序并比较性能 | | 3 | 搜索算法(二分、BFS、DFS) | 用 BFS 解决迷宫问题 | | 4 | 哈希表、常用技巧(双指针、滑动窗口) | LeetCode 简单题 3-5 道 | | 5 | AI Agent 前端页面设计 | 用 Vue 3 设计聊天界面 | | 6 | 流式对话前端实现(SSE 对接) | 前端实现打字机效果 | | 7 | 对话历史管理、Markdown 渲染 | 对话列表、消息气泡、代码高亮 | **本周产出**:Agent 聊天前端页面,支持流式输出和历史记录。 --- ### 第 12 周:最终项目 —— AI Agent 网站 **目标**:整合所有技能,交付完整 AI Agent 网站。 | 天 | 学习内容 | 实践 | |----|---------|------| | 1 | 项目架构设计 | 设计 Agent 网站的完整架构图 | | 2 | Agent 后端开发(工具集成) | 集成搜索、计算、天气等工具 | | 3 | Agent 后端开发(记忆 + RAG) | 完善记忆系统和知识库 | | 4 | 前端页面完善(聊天 + 设置 + 工具面板) | 完成所有前端页面 | | 5 | 前后端联调、错误处理 | 全流程测试和 bug 修复 | | 6 | 部署上线(Docker + Nginx) | 打包部署到服务器 | | 7 | 项目总结与复盘 | 写项目 README、整理技术文档 | **最终项目**:AI Agent 网站 —— ``` 功能清单: ├── 🤖 智能对话 —— 多轮对话,流式输出 ├── 🔧 工具调用 —— 联网搜索、计算器、天气查询 ├── 📚 知识库 —— RAG 文档问答 ├── 🧠 记忆系统 —— 跨会话记忆 ├── 👤 用户系统 —— 注册登录、JWT 认证 ├── 💬 聊天界面 —— Markdown 渲染、代码高亮 └── ⚙️ 系统设置 —— 模型选择、参数配置 ``` --- ## 学习节奏建议 | 事项 | 建议 | |------|------| | 每天学习时间 | 2-3 小时(周末可加量到 4-6 小时) | | 代码量 | 每天至少手写 50-100 行代码 | | 复习频率 | 每周日复习本周内容,每月底做一次大复习 | | 遇到问题 | 先自己 Debug 15 分钟 → Google/StackOverflow → 问 AI | | 笔记 | 用 Markdown 记录核心概念和自己的理解 | --- ## 推荐学习资源 ### 书籍 - 《Head First Java》—— Java 入门首选 - 《Spring Boot 实战派》—— Spring Boot 快速上手 - 《Vue.js 快速上手》—— 前端框架入门 ### 视频 - B 站尚硅谷/黑马程序员 Spring Boot 教程 - B 站 Vue 3 入门教程 ### 文档 - [Spring Boot 官方文档](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/) - [Spring Data JPA 官方文档](https://docs.spring.io/spring-data/jpa/reference/) - [MyBatis-Plus 官方文档](https://baomidou.com/) - [Spring AI 官方文档](https://docs.spring.io/spring-ai/reference/) - [Vue 3 官方文档](https://cn.vuejs.org/) ### 刷题 - LeetCode 简单难度(从第 2 个月开始每天 1 题) --- ## 每周检查点 | 周次 | 核心检查项 | |------|-----------| | 第 1 周 | 能用 Java 写出面向对象的命令行程序 | | 第 2 周 | 能用 Spring Boot 写 RESTful API | | 第 3 周 | 能用 JPA 和 MyBatis-Plus 分别操作数据库 | | 第 4 周 | 第一个全栈 CRUD 应用(双 ORM 实现可切换) | | 第 5 周 | 理解并实现 JWT 认证 | | 第 6 周 | 能用 Vue 3 写 SPA 应用 | | 第 7 周 | 前后端分离完整对接 | | 第 8 周 | 有测试、有文档 | | 第 9 周 | 能调用大模型 API 实现对话 | | 第 10 周 | 理解 Agent 架构 + Function Calling | | 第 11 周 | 算法入门 + Agent 聊天前端 | | 第 12 周 | AI Agent 网站上线 | --- > **最重要的原则**:多写代码,少看视频。看完概念立刻动手,遇到 bug 是学习的最好机会。