Spring AI:Java 生态原生 AI 框架入门指南
Spring AI 是面向 Java 生态的原生 AI 框架,提供统一接口适配多供应商模型。介绍其核心特性,包括标准化 API、Spring Boot 集成、RAG 支持及工具调用。通过 Deepseek 案例演示了环境搭建、依赖配置、代码编写及流式响应可视化界面的实现,帮助开发者快速接入 AI 能力。

Spring AI 是面向 Java 生态的原生 AI 框架,提供统一接口适配多供应商模型。介绍其核心特性,包括标准化 API、Spring Boot 集成、RAG 支持及工具调用。通过 Deepseek 案例演示了环境搭建、依赖配置、代码编写及流式响应可视化界面的实现,帮助开发者快速接入 AI 能力。

在大模型席卷全球的技术浪潮下,Java 开发者们迫切需要一款贴合自身生态、低门槛接入 AI 能力的框架。Spring AI 的出现,恰好填补了这一空白 —— 它并非简单移植 Python 生态的现有方案,而是深度遵循 Spring 设计哲学,为 Java 和 Spring 开发者打造了原生的 AI 开发框架。本文将从 Spring AI 的核心概念、核心特性出发,结合实际环境搭建与首个对话案例,带大家快速上手这款框架,解锁 Java 生态与 AI 融合的全新可能。
Spring AI 是面向 Java 和 Spring 生态的原生人工智能框架,其核心设计理念完全传承自 Spring:依赖注入、POJO 编程、模块化架构与可配置性。它重构了 AI 应用的全开发流程,让开发者无需关注底层模型的适配细节,就能像调用数据库、Web API 一样轻松集成聊天、文本嵌入、图像生成、语音处理等 AI 能力。

更重要的是,Spring AI 完美解决了多 AI 供应商适配的痛点 —— 通过'一套接口,多种实现'的统一抽象,开发者可以无缝切换 OpenAI、Anthropic、Bedrock、Hugging Face、Vertex AI、Ollama 等主流 AI 服务,无需修改核心业务代码。同时,它还支持企业内部数据与 AI 模型的快速关联,这正是检索增强生成(RAG)等高级场景的核心需求。
官方文档 官网地址:https://spring.io/projects/spring-ai 官方文档:https://docs.spring.io/spring-ai/reference/index.html 中文文档:https://spring-ai.spring-doc.cn/docs/1.0.0/index.html
Spring AI 覆盖了 AI 应用开发的全流程,其核心特性可以总结为以下 7 点,每一点都精准命中开发者的实际需求:
深度对接 Anthropic、OpenAI 等主流服务商,覆盖聊天交互、文本嵌入、多模态生成、语音交互、内容安全等核心能力。
所有模型统一接口封装,切换模型无需修改业务代码,提升项目灵活性与可扩展性。
Spring AI 提供了 ChatClient、EmbeddingModel、ImageModel 等标准化接口,开发者无需关心底层模型的差异。支持同步/流式调用及模型高级功能(如 OpenAI Function Calling),聚焦业务逻辑,提升开发效率。
遵循 Spring Boot 设计理念,通过 Starter 依赖与自动装配实现 AI 组件一键集成,Spring Initializr 可快速生成项目骨架,开箱即用,贴合 Java 开发者习惯。
支持将 AI 非结构化响应自动解析映射到 Java POJO,保障类型安全,避免繁琐的字符串解析与类型转换,降低维护成本。
Spring AI 集成了 PostgreSQL/pgvector、Pinecone、Qdrant、Redis、Weaviate 等主流向量数据库,提供元数据过滤、相似度检索能力;同时内置 ETL 流程,可快速搭建 RAG 系统,解决大模型'知识过期''不懂私有数据'痛点。
原生支持模型驱动的工具调用,可将 Spring Bean 注册为 AI 可调用工具,实现 AI 自动调用业务接口、查询数据库等操作,例如:
实现 AI 与业务流程深度融合,让 AI 从'对话工具'升级为'业务智能入口',打通需求到执行的全闭环。
理论再多不如实际动手,下面我们将通过一个完整的案例,教大家搭建 Spring AI 环境,并实现与 Deepseek 模型的对话交互。
Spring AI 构建在 Spring Boot 3.x 之上,对环境有明确要求:
Step 1:访问 Spring Initializr 访问 https://start.spring.io/,或在 IDEA 中直接创建 New Module。项目配置如下:
Step 2:添加依赖 Spring Boot 版本选择 3.5.x,依赖选择:仅需添加「Spring Web」依赖(后续通过 Maven 引入 Spring AI 相关依赖)。
创建完成后的项目结构如下:
spring-ai-demo/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ └── DemoApplication.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
└── pom.xml
Step 3:配置 pom.xml 依赖 在 pom.xml 中添加 Spring AI 相关依赖,核心是导入 Spring AI BOM 统一管理版本,并引入 Deepseek 模型 starter:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="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">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.example</groupId>
<artifactId>spring-ai-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>spring-ai-demo</artifactId>
<name>spring-ai-demo</name>
<description>Spring AI Quick Start</description>
<properties>
<java.version>17</java.version>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</>
org.springframework.boot
spring-boot-starter-webflux
org.springframework.boot
spring-boot-starter-web
org.springframework.ai
spring-ai-starter-model-deepseek
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-maven-plugin
Step 4:配置 application.properties 在 src/main/resources/application.properties 中配置 Deepseek 模型的基础信息:
spring.application.name=spring-ai-demo
server.port=8080
# Deepseek URL
spring.ai.deepseek.base-url=https://api.deepseek.com
spring.ai.deepseek.api-key=你的 Deepseek appkey
spring.ai.deepseek.chat.options.model=deepseek-chat
注意:Deepseek API 密钥需要在 Deepseek 官网注册获取,替换配置中的占位符。
Step 5:编写 ChatController 创建 com.example.demo.controller 包,并编写 ChatController 类,实现与 Deepseek 模型的交互:
import org.springframework.ai.deepseek.DeepSeekChatModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/ai")
public class ChatController {
@Autowired
private DeepSeekChatModel chatModel;
@PostMapping("/chat")
public String chat(@RequestBody String message) {
return chatModel.call(message);
}
}
Step 6:启动并测试 运行 DemoApplication.java 启动项目。 浏览器访问:http://localhost:8080/ai/chat?message=你是谁,即可看到模型响应。
前面使用 Spring AI 快速整合 DeepSeek,实现了与大模型对话的功能,但是,这个项目存在两个不足:
在 ChatController 中,创建新接口 /ai/chatStream 接口。
@PostMapping("/chatStream")
public SseEmitter chatStream(@RequestBody String message) {
SseEmitter emitter = new SseEmitter(Long.MAX_VALUE);
Flux<String> stream = chatModel.stream(message);
stream.subscribe(
chunk -> {
try {
String json = objectMapper.writeValueAsString(chunk);
emitter.send(SseEmitter.event().data(json).build());
} catch (IOException e) {
emitter.completeWithError(e);
}
},
error -> { emitter.completeWithError(error); },
() -> { emitter.complete(); }
);
return emitter;
}
为了更直观地与模型交互,我们可以在 src/main/resources/static 目录下创建 index.html,实现简单的聊天界面:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AI 聊天助手(流式响应)</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); height: 100vh; display: flex; justify-content: center; align-items: center; }
.chat-container { width: 800px; height: 600px; background: white; border-radius: 16px; box-shadow: 0 20px (,,,); : flex; : column; : hidden; }
{ : (, , ); : ; : white; }
{ : ; : ; : auto; : ; }
{ : ; : flex; : flex-start; }
{ : flex-end; }
{ : flex-start; }
{ : ; : ; : ; : ; : break-word; }
{ : (, , ); : white; : ; }
{ : white; : ; : ; : (,,,); }
{ : ; : white; : solid ; }
{ : flex; : ; }
{ : ; : ; : solid ; : ; : ; : none; : border-color ; }
{ : ; : (, , ); : white; : none; : ; : ; : ; : pointer; }
AI 聊天助手基于 Spring AI 和 DeepSeek 的智能对话系统
发送
重启项目后,访问 http://localhost:8080,即可通过可视化界面与 AI 聊天,例如输入'你好',模型会流式返回。

本文我们从 Spring AI 的核心概念出发,详细介绍了它的核心特性,并通过一个完整的 Deepseek 对话案例,带大家完成了环境搭建、依赖配置、代码编写与测试的全流程。Spring AI 的核心优势在于'原生集成 Spring 生态'与'统一抽象接口',让 Java 开发者无需跨生态就能快速接入 AI 能力,极大降低了 AI 应用的开发门槛。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online