本文是「Java 开发者 AI 入门」专栏第 4 篇。前 3 篇我们聊了大模型的基本概念、Prompt 工程和 Java 调用 API 的原理,这一篇终于要动手了——用Spring AI搭建一个真正能跑的 AI 应用。[配图1:Spring AI Logo + Spring Boot Logo 组合图,体现两者无缝集成]一、Spring AI 是什么?为什么选它?如果你是 Java 开发者,第一次想在大模型应用里动手,大概率会遇到这种情况:各个厂商(OpenAI、智谱、通义千问、百度文心……)各自提供 SDK,API 格式不同,调用方式各异,换一个模型就要重写一堆代码。Spring AI要解决的就是这个问题。它是 Spring 官方推出的 AI 应用开发框架,核心理念和 Spring Data 类似——用统一的抽象层屏蔽底层差异。你可以用同一套代码对接 OpenAI、智谱 AI、Ollama 本地模型等,切换模型只需改配置,不用动业务逻辑。选 Spring AI 的三个理由:优势说明统一抽象ChatModel、EmbeddingModel 等接口,一套代码跑遍所有模型Spring 编程模型自动装配、依赖注入、配置管理,和写普通 Spring Boot 项目一样多模型支持OpenAI、Azure OpenAI、Ollama、HuggingFace、智谱、通义千问等 20+ 模型一句话总结:Spring AI 就是 Java 世界里的"AI 开发基础设施"。你不需要从零理解 HTTP 调用、Token 管理、流式输出这些底层细节,框架帮你搞定。二、环境搭建:从零开始2.1 创建 Spring Boot 项目使用 Spring Initializr 创建项目,关键依赖:Spring Boot 3.4.x(Spring AI 要求 Java 17+)Spring AI BOM(版本管理)spring-ai-openai-spring-boot-starter(作为统一 starter,智谱等兼容 OpenAI 协议的模型可直接复用)完整的pom.xml如下:?xml version="1.0" encoding="UTF-8"?projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"modelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion3.4.3/versionrelativePath//parentgroupIdcom.example/groupIdartifactIdspring-ai-demo/artifactIdversion1.0.0/versionnamespring-ai-demo/namedescriptionSpring AI 入门实战/description!-- ============ 关键1:Spring AI BOM ============ --dependencyManagementdependenciesdependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-bom/artifactIdversion1.0.0/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagement!-- ============ 关键2:Spring Milestones 仓库 ============ --repositoriesrepositoryidspring-milestones/idnameSpring Milestones/nameurlhttps://repo.spring.io/milestone/urlsnapshotsenabledfalse/enabled/snapshots/repository/repositoriesdependencies!-- Web --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!-- Spring AI - OpenAI Starter(智谱 GLM 兼容 OpenAI 协议,可复用此 starter) --dependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-openai-spring-boot-starter/artifactId/dependency!-- Lombok(可选,减少样板代码) --dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependency!-- 测试 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationexcludesexcludegroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/exclude/excludes/configuration/plugin/plugins/build/project⚠️ 注意:如果依赖下载失败,99% 的原因是缺少 Spring Milestones 仓库或 BOM 版本不匹配。请确认上面dependencyManagement和repositories两个节点都正确添加。2.2 配置大模型 API在application.yml中配置模型接入信息:spring:ai:openai:# ============ 智谱 AI(GLM 系列)============api-key:${ZHIPU_API_KEY}# 请设置环境变量,不要硬编码!base-url:${ZHIPU_BASE_URL:https://open.bigmodel.cn/api/paas/v4}chat:options:model:glm-4-flash# 智谱免费模型,适合入门temperature:0.7# ============ 切换到 OpenAI ============# api-key: ${OPENAI_API_KEY}# base-url: https://api.openai.com# chat:# options:# model: gpt-4o-mini# ============ 切换到通义千问 ============# api-key: ${DASHSCOPE_API_KEY}# base-url: ${DASHSCOPE_BASE_URL}# chat:# options:# model: qwen-turbo💡 提示:上面的base-url可能随厂商 API 升级而变化,请查阅对应厂商的官方文档获取最新 endpoint。API Key 强烈建议使用环境变量注入,不要直接写在配置文件中提交到代码仓库。2.3 第一个 Hello AI三步搞定:第一步:启动类packagecom.example.springaidemo;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublicclassAiDemoApplication{public
Spring AI 实战:5 分钟搭建你的第一个 AI 应用(含完整代码)
本文是「Java 开发者 AI 入门」专栏第 4 篇。前 3 篇我们聊了大模型的基本概念、Prompt 工程和 Java 调用 API 的原理,这一篇终于要动手了——用Spring AI搭建一个真正能跑的 AI 应用。[配图1:Spring AI Logo + Spring Boot Logo 组合图,体现两者无缝集成]一、Spring AI 是什么?为什么选它?如果你是 Java 开发者,第一次想在大模型应用里动手,大概率会遇到这种情况:各个厂商(OpenAI、智谱、通义千问、百度文心……)各自提供 SDK,API 格式不同,调用方式各异,换一个模型就要重写一堆代码。Spring AI要解决的就是这个问题。它是 Spring 官方推出的 AI 应用开发框架,核心理念和 Spring Data 类似——用统一的抽象层屏蔽底层差异。你可以用同一套代码对接 OpenAI、智谱 AI、Ollama 本地模型等,切换模型只需改配置,不用动业务逻辑。选 Spring AI 的三个理由:优势说明统一抽象ChatModel、EmbeddingModel 等接口,一套代码跑遍所有模型Spring 编程模型自动装配、依赖注入、配置管理,和写普通 Spring Boot 项目一样多模型支持OpenAI、Azure OpenAI、Ollama、HuggingFace、智谱、通义千问等 20+ 模型一句话总结:Spring AI 就是 Java 世界里的"AI 开发基础设施"。你不需要从零理解 HTTP 调用、Token 管理、流式输出这些底层细节,框架帮你搞定。二、环境搭建:从零开始2.1 创建 Spring Boot 项目使用 Spring Initializr 创建项目,关键依赖:Spring Boot 3.4.x(Spring AI 要求 Java 17+)Spring AI BOM(版本管理)spring-ai-openai-spring-boot-starter(作为统一 starter,智谱等兼容 OpenAI 协议的模型可直接复用)完整的pom.xml如下:?xml version="1.0" encoding="UTF-8"?projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"modelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion3.4.3/versionrelativePath//parentgroupIdcom.example/groupIdartifactIdspring-ai-demo/artifactIdversion1.0.0/versionnamespring-ai-demo/namedescriptionSpring AI 入门实战/description!-- ============ 关键1:Spring AI BOM ============ --dependencyManagementdependenciesdependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-bom/artifactIdversion1.0.0/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagement!-- ============ 关键2:Spring Milestones 仓库 ============ --repositoriesrepositoryidspring-milestones/idnameSpring Milestones/nameurlhttps://repo.spring.io/milestone/urlsnapshotsenabledfalse/enabled/snapshots/repository/repositoriesdependencies!-- Web --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!-- Spring AI - OpenAI Starter(智谱 GLM 兼容 OpenAI 协议,可复用此 starter) --dependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-openai-spring-boot-starter/artifactId/dependency!-- Lombok(可选,减少样板代码) --dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependency!-- 测试 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationexcludesexcludegroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/exclude/excludes/configuration/plugin/plugins/build/project⚠️ 注意:如果依赖下载失败,99% 的原因是缺少 Spring Milestones 仓库或 BOM 版本不匹配。请确认上面dependencyManagement和repositories两个节点都正确添加。2.2 配置大模型 API在application.yml中配置模型接入信息:spring:ai:openai:# ============ 智谱 AI(GLM 系列)============api-key:${ZHIPU_API_KEY}# 请设置环境变量,不要硬编码!base-url:${ZHIPU_BASE_URL:https://open.bigmodel.cn/api/paas/v4}chat:options:model:glm-4-flash# 智谱免费模型,适合入门temperature:0.7# ============ 切换到 OpenAI ============# api-key: ${OPENAI_API_KEY}# base-url: https://api.openai.com# chat:# options:# model: gpt-4o-mini# ============ 切换到通义千问 ============# api-key: ${DASHSCOPE_API_KEY}# base-url: ${DASHSCOPE_BASE_URL}# chat:# options:# model: qwen-turbo💡 提示:上面的base-url可能随厂商 API 升级而变化,请查阅对应厂商的官方文档获取最新 endpoint。API Key 强烈建议使用环境变量注入,不要直接写在配置文件中提交到代码仓库。2.3 第一个 Hello AI三步搞定:第一步:启动类packagecom.example.springaidemo;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublicclassAiDemoApplication{public