Files
gc-plan/plan.md
2026-04-29 23:45:17 +08:00

14 KiB
Raw Blame History

三月学习计划:从 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 部署、前后端联调 本地部署完整应用

本周产出:前后端分离的学生管理系统 v3Vue 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 入门教程

文档

刷题

  • 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 是学习的最好机会。