Spring AI 是 Spring 官方推出的 AI 应用开发框架,为 Java 开发者提供了一套与 ChatGPT、通义千问、DeepSeek、Ollama 等主流大模型通信的统一 API。如果你会用 RestClient 或 JdbcClient,Spring AI 的 ChatClient 同样触手可及——只需添加依赖、配置 API Key、写三行代码,就能让 Spring Boot 应用调用大模型。本文从零开始,6 步跑通第一个可用的 AI 接口,并附主流模型供应商对照与常见踩坑提示。 一、Spring AI 是什么:核心概念快速扫盲
Spring AI 是一个抽象层,位于 Spring Boot 应用与大模型供应商之间。它的设计思路与 Spring Data 完全一致:你写一套代码,通过配置切换不同的模型供应商,无需改动业务逻辑。
四大核心概念
| | |
|---|
| 统一调用接口,fluent 流式 API 调用大模型 | |
| | 你通常不直接调用,由 ChatClient 内部使用 |
| 版本清单,统一管理所有 Spring AI 模块版本 | Spring Boot BOM,确保子模块版本兼容 |
| 按模型供应商拆分的自动配置包(openai/ollama/deepseek/alibaba 等) | |
Spring AI 架构图
核心认知:Spring AI 不训练模型,只负责"调用"模型。模型能力取决于你接的供应商(OpenAI GPT-4o、阿里通义、DeepSeek 等),Spring AI 只解决如何用 Java 代码调用它们的问题。
二、环境准备:前置条件一览
| |
|---|
| JDK 17 及以上(推荐 JDK 21,与 Spring Boot 4.x 生态对齐) |
| Spring Boot 3.2.x 及以上(生产使用3.3.x/3.4.x稳定版,Spring Boot4.x尚为快照版本不建议生产) |
| |
| 三选一:OpenAI API Key / 阿里云百炼 API Key / 本地 Ollama(免费) |
三、快速上手:6 步跑通 Hello World
步骤 1:用 Spring Initializr 创建项目
- Dependencies:Spring Web(必须)
下载解压后,用 IDE 打开即可。
步骤 2:添加 Spring AI BOM 与模型 Starter 依赖
打开 pom.xml,在 <dependencyManagement>gt; 内添加 BOM,再在 <dependencies>gt; 内添加模型 Starter。注意 BOM 用 <type>pom</type> + <scope>import</scope> 声明。
步骤 3:配置 API Key(application.yml)
绝对不要把 API Key 硬编码进源码,必须通过环境变量注入。以下是三种配置的写法:
步骤 4:编写最简 ChatController
Spring Boot 会根据 Starter 类型自动配置 ChatClient.Builder,直接注入即可。整个应用只需要写这一类:
chatClient.prompt().user(x).call().content() 是 Spring AI 最核心的三步链:构建 → 调用 → 取内容,与 restClient.get().uri(...).retrieve().body(...) 结构完全一致。
步骤 5:启动并测试
步骤 6:验证自动配置是否成功
启动时观察日志,若出现以下内容说明自动配置生效:
若报错 Could not resolve placeholder 'OPENAI_API_KEY',说明环境变量未设置,先 export OPENAI_API_KEY=your-key 再运行。
四、主流模型供应商对比与选择
| | | | |
|---|
| spring-ai-starter-model-openai | | | |
| spring-ai-starter-model-ollama | | | |
| spring‑ai‑alibaba‑starter‑dashscope(阿里云社区独立项目) | | | |
| spring-ai-starter-model-deepseek | | | |
| spring-ai-starter-model-azure-openai | | | |
推荐策略:开发阶段用 Ollama(免费),生产切换 OpenAI 或通义千问。只需在 application.yml 中换掉 Starter 和 API Key,Java 代码一行不用改。
五、进阶一步:提示词模板与结构化输出
提示词模板(PromptTemplate)
避免把提示词硬编码在代码里,用模板动态替换变量:
结构化输出(POJO 映射)
让模型返回的结果直接映射为 Java 对象,而不是字符串:
进阶学习路径:入门后可以继续探索五大方向——① ChatMemory(多轮对话记忆)② RAG(检索增强生成,接向量数据库)③ Function Calling(让 AI 调用外部工具)④ Image/Embedding(多模态)⑤ AI Agents(自主执行多步任务)。
以上信息截至2026年9月15日综合自 Spring AI 官方文档(docs.spring.io/spring-ai/reference)、GitHub springaialibaba/spring-ai-alibaba-website、hello-spring-ai (making)、CSDN、baeldung.com、numpyninjaacademy.com、blogs.jsbisht.com、freetoolsuite.org、hungrycoders.com、itoverdose.com、worldprogramming.org、dev.to 等来源。Spring AI 版本迭代较快,建议以官方文档(docs.spring.io/spring-ai/reference)最新版本为准;Spring AI 2.0 尚处于 milestone 阶段(2.0.0-M8),生产项目推荐使用 1.x GA 稳定版。