Spring AI 应用开发实践
面向在校学生的 Spring AI 2.0 系统化课程教导站。每一章都按「学习目标 → 概念详解 → 依赖与配置 → 逐行代码解析 → 动手实操 → 验收标准」组织,配套可运行工程 springai-lab,跟着敲完就能跑。
Spring AI 2.0.1 Spring Boot 4.1.x Java 17 DeepSeek / 智谱等 OpenAI 兼容模型 纯静态 · 无需自备服务器
11
正章节
32
建议学时
1
配套可运行工程
100%
章节带验收标准
一课程定位与学情分析
课程定位
本课程是 Spring Boot 后端开发能力的进阶延伸课:在学生已掌握 Web 开发、数据库与依赖管理的基础上,系统学习如何用 Spring AI 2.0 把大语言模型能力「工程化」地集成进 Java 应用——而不是调用一次 API 就结束。
课程产线为「概念 → 配置 → 逐行代码 → 实操 → 验收」五步闭环,每章产出可运行、可检查的代码成果。
学情分析
已有基础:Java 语法、Spring Boot 基础(Controller/Service 分层、配置文件、Maven)。
普遍短板:① 未接触过 AI 应用开发,对提示词、嵌入、RAG 等概念陌生;② 依赖版本管理意识弱,易混用网上 1.x 老教程;③ 缺少「按验收标准交付」的工程习惯。
对策:全程锁定版本基准(见下)、每个概念先讲「为什么」再讲「怎么写」、每章以验收清单收口。
二教学目标
| 维度 | 目标描述(课程结束时学生应能…) |
|---|---|
| 知识目标 | 说清 ChatModel / ChatClient / Advisor / EmbeddingModel / VectorStore 等核心抽象的职责与关系;理解提示词工程、RAG、工具调用、MCP、多智能体的基本原理。 |
| 能力目标 | 独立完成「对话 → 结构化输出 → RAG 问答 → 工具调用 → 智能体」的完整链路开发;能按排错表独立定位 API 报错、依赖冲突、密钥配置等常见问题。 |
| 素质目标 | 养成密钥不进源码、版本先核对、代码即注释、按验收标准交付的工程习惯;建立「AI 输出需要验证」的正确认知。 |
三学时分配(共 32 学时)
| 章 | 内容 | 学时 | 课堂形式 |
|---|---|---|---|
| 第 0 章 | 环境准备(课前完成 + 课上验收) | 1 | 检查 + 排错演示 |
| 第 1 章 | Spring AI 入门(框架认知 + 第一次调用) | 2 | 讲授 + 跟练 |
| 第 2 章 | 提示词与对话(智能客服) | 3 | 讲授 + 跟练 |
| 第 3 章 | 结构化输出与 Advisors | 3 | 讲授 + 跟练 |
| 第 4 章 | 嵌入模型与向量数据库 | 3 | 讲授 + 演示 |
| 第 5 章 | RAG 检索增强生成 | 4 | 讲授 + 综合跟练 |
| 第 6 章 | 记忆与多模型 | 2 | 讲授 + 跟练 |
| 第 7 章 | 工具调用(Function Calling) | 3 | 讲授 + 跟练 |
| 第 8 章 | MCP 协议 | 2 | 讲授 + 演示 |
| 第 9 章 | 智能体(Agent) | 3 | 讲授 + 讨论 |
| 第 10 章 | 可观测性与评估 | 2 | 讲授 + 演示 |
| 第 11 章 | 综合项目(智能知识助手) | 4 | 项目实训 + 答辩 |
四考核评价方式
| 构成 | 占比 | 说明 |
|---|---|---|
| 过程性考核 · 章节验收 | 40% | 每章「验收标准」清单逐项打勾,12 章取平均;环境准备章计入 |
| 过程性考核 · 课堂练习与作业 | 20% | 各章「课堂练习 / 课后作业」完成质量 |
| 期末综合项目 | 40% | 第 11 章综合项目:功能完成度 20% + 代码规范与注释 10% + 现场演示答辩 10% |
教学方法建议(教师参考):① 每章前 10 分钟「错误复现」——教师故意演示一个典型报错并让学生排查,比直接讲正确写法记忆深一倍;② 跟练环节用「教师写一步、学生跟一步、随机点人读注释」的节奏防止掉队;③ 全程要求学生在验收清单上自查签字,教师抽查 30%。
五学习路线:四个阶段
阶段一 · 会说话(第 0~2 章)
环境就位 → 第一次调用大模型 → 用提示词工程与对话记忆做出一个像样的智能客服。
阶段二 · 说得准(第 3~4 章)
把自由文本变成可编程的 JSON 对象;理解嵌入与向量数据库,为 RAG 打底。
阶段三 · 接得上(第 5~8 章)
RAG 让模型「开卷考试」;记忆让对话有上下文;工具调用与 MCP 让模型能查库、能执行动作。
阶段四 · 立得住(第 9~11 章)
从「调用一次」升级到「自主规划多步」的智能体;学会观测与评估;综合项目完整落地。
六章节导航
CH 00 · 1 学时
环境准备
JDK 17 / IDEA / Maven 镜像 / API 密钥,四件事全部验收通过才准进第 1 章。
产出:环境验收截图 + 工程打开无红线
CH 01 · 2 学时
Spring AI 入门
框架是什么、解决什么问题;ChatModel 与 ChatClient 两种调用方式第一次跑通。
产出:同步 + 流式两个接口可用
CH 02 · 3 学时
提示词与对话
消息角色、提示词模板、外置提示词文件、少样本、多轮记忆与会话隔离。
产出:智能客服接口(含会话隔离验收)
CH 03 · 3 学时
结构化输出与 Advisors
让模型输出可直接编程消费的 Java 对象;理解 Advisor 拦截链的原理与自定义。
产出:订单信息抽取接口(entity 输出)
CH 04 · 3 学时
嵌入模型与向量数据库
文本如何变成向量;pgvector 从建表到相似度检索完整走一遍。
产出:语义相似度检索 demo
CH 05 · 4 学时
RAG
ETL 管线、文档分割、检索增强生成全流程,让模型「照着资料答题」。
产出:基于自有文档的问答接口
CH 06 · 2 学时
记忆与多模型
会话持久化到 JDBC/Redis;一套代码切换 DeepSeek / 智谱 / Ollama 多供应商。
产出:重启不丢的对话 + 一键换模型
CH 07 · 3 学时
工具调用
让模型学会「查库再回答」:Function Calling 的注册、循环与安全边界。
产出:可查询实时数据的对话接口
CH 08 · 2 学时
MCP
模型上下文协议:把工具做成标准化服务,跨应用复用。
产出:一个 MCP 服务端 + 客户端接入
CH 09 · 3 学时
智能体
从「调用一次」到「自主规划多步」:ReAct 循环、任务分解与安全护栏。
产出:多步骤任务智能体 demo
CH 10 · 2 学时
可观测性与评估
Token 成本、延迟、质量三件事怎么量化;提示词版本与效果关联。
产出:带观测指标的接口 + 评估记录
CH 11 · 4 学时
综合项目
智能知识助手:RAG + 工具 + 记忆 + 结构化输出的完整落地与答辩。
产出:可演示项目 + 答辩(期末 40%)
七配套工程与学习纪律
springai-lab/ # 课程配套工程(本课程包 lab/ 目录,与本站代码逐字一致)
├── pom.xml # 依赖清单:Boot 4.1.1 + spring-ai-bom 2.0.1
└── src/main/
├── java/com/example/springai/
│ ├── SpringaiLabApplication.java # 启动类
│ ├── common/ChatClientConfig.java # 全局 ChatClient
│ └── ch01/ ch02/ ... ch11/ # 每章一个包,随进度递增
└── resources/
├── application.yml # 模型配置(换厂商只改这里)
└── prompts/*.st # 外置提示词文件
- 版本纪律:所有代码基于 Spring AI 2.0.1 + Boot 4.1.x。网上 1.x 教程的 API 写法(如
PromptChatMemoryAdvisor、toolNames())在本课程环境会直接报错,先查本站对应章节。 - 密钥纪律:密钥只放环境变量,任何文件、截图、提交记录里都不允许出现完整 key。
- 提交纪律:每章验收前,把本章代码提交到自己的 Git 仓库,提交信息用「chXX: 完成内容摘要」格式。
- 验证纪律:教程里每条「期望输出」都要亲自跑出来;跑不出来先查排错表,再问同学,最后问老师——把排查过程记进实验报告。
课程总体目标:学完本课程,你不仅能「用 Spring AI 调大模型」,而是能独立设计并交付一个企业级的 AI 应用模块——输入是需求,输出是带验收记录、成本可控、可观测、可维护的工程代码。这正是这门课与「调 API 教程」的本质区别。