**Spring AI 发布了它的 1.0.0 版本的第七个里程碑(M7),**下个月就是 RC1,紧接着就是 GA!,对于我们 Java 开发者来说,这绝对是个值得关注的好消息!

但是对于 Java 学习者来说,内心难免吐槽一句:又有新东西要学啦!
像我最近在写 AI 相关的项目教程,基于的是 M6 版本,结果突然就来 M7 了,当时还不知道有没有什么破坏性变更,让我不由得心头一紧 "刚写完的教程又得更新了?"
考虑到很多读者还不知道 Spring AI 是什么,这里先简单介绍一下。
Spring AI 介绍
简单来说,Spring AI 就是 Spring 家族为我们 Java 开发者量身打造的、用来简化 AI 应用开发的框架。
Spring AI 提供了构建常见 AI 应用的能力,例如:基于文档的问答、与文档交互的聊天。它的目标就是将数据和 API 无缝连接到 AI 模型中。

这是 Spring AI 官方对其的描述:
The Spring AI project aims to streamline the development of applications that incorporate artificial intelligence functionality without unnecessary complexity.
Spring AI 项目旨在简化集成人工智能功能的应用程序开发,避免不必要的复杂性。
Spring AI 核心想解决这几个问题:
-
提供抽象,屏蔽底层差异: 不管你用的是 OpenAI 的 GPT,还是谷歌的 Gemini,或者是 Anthropic 的 Claude,甚至是 Hugging Face 上的开源模型,Spring AI 都想提供一套统一的、可移植的 API 让你去调用。同样,对于向量数据库(像 Milvus、Pinecone、Redis、PGVector 等),它也提供了统一的 API 和查询方式。这意味着你的代码可以更容易地在不同的 AI 服务和数据库之间切换,不用被某个厂商锁死。
-
简化 AI 应用开发: 构建一个稍微复杂点的 AI 应用,比如 RAG(检索增强生成),涉及到数据加载、切分、向量化、存储、检索、调用 LLM 等一系列步骤。Spring AI 提供了像 ETL 框架、ChatClient、VectorStore 等组件和抽象,大大简化了这些流程的实现。
-
模型与向量数据库支持广泛: 它对接了市面上几乎所有主流的大模型提供商(聊天、文生图模型都支持)和向量数据库。选择非常丰富。
-
深度集成 Spring 生态: 这可是 Spring 的看家本领!提供了各种 Spring Boot Starter,让 AI 模型、向量数据库的配置和集成变得超级简单,遵循"约定大于配置"的原则,开箱即用。
项目地址:https://github.com/spring-projects/spring-ai/tags

Spring AI 1.0.0 M7 改进
Spring AI 1.0.0 M7 号称是最后一个里程碑版本,值得关注一波,下个月就是 RC1,紧接着就是 GA!

这意味着框架的结构和核心 API 趋于稳定了。不过,也正因为如此,M7 带来了一些重要的(破坏性的)变更,主要是为了让整个框架结构更合理、更模块化。大家升级的时候需要注意一下!
下面我会对这个版本的改动做详细的解读,官方解读在这里:https://spring.io/blog/2025/04/10/spring-ai-1-0-0-m7-released 。
1、包名和类路径大调整 (Breaking Change):
-
Starter 的 Artifact ID 变了! 命名规则更加规范了,比如模型相关的 Starter 从
spring-ai-{model}-spring-boot-starter
变成了spring-ai-starter-model-{model}
,向量数据库的也类似。升级时pom.xml
或build.gradle
文件里的依赖需要修改。 -
一些类的包路径也挪了地方 ,比如 Content、Media 相关类挪到了
org.springframework.ai.content
包下。不过别担心,这些重构你的 IDE(比如 IDEA)应该能自动帮你搞定。
2、核心架构大升级:从"大一统"到"模块化" (Core Architecture Improvements):
这是 M7 最核心的变化!之前的 spring-ai-core 被拆分成了多个更专注的领域模块,比如:
-
-
spring-ai-commons
: 最基础的,包含文档(Document
)、文本分割器(TextSplitter
)等核心模型和工具,不依赖其他 Spring AI 模块。 -
spring-ai-model:
负责 AI 能力的抽象,像ChatModel
,EmbeddingModel
,ImageModel
这些接口都在这。 -
spring-ai-vector-store
: 统一的向量数据库抽象层。 -
spring-ai-client-chat:
更高层的对话式 AI API,像 ChatClient、对话记忆 (ChatMemory) 都在这里。 -
spring-ai-rag
: 专门为 RAG 设计的框架。 -
spring-ai-model-chat-memory-*
:持久化实现,Cassandra、Neo4j 和 JDBC 实现。 -
......
-
-
好处是啥?
-
按需引入,应用更轻量: 你只需要引入你真正用到的模块,应用的依赖更少,部署包更小。
-
减少依赖冲突: 模块化后,传递性依赖更少,跟其他第三方库冲突的概率也小了。
-
关注点分离更清晰: 每个模块职责更明确。
-
-
升级影响: 如果你之前用的是 Spring AI 的 Starter,那这个变化对你来说应该是透明的,因为 Starter 会自动帮你引入新的模块化依赖。但如果你是直接依赖旧的 spring-ai-core,那这次升级就需要手动调整依赖了。
-
自动配置也模块化了: 配合核心架构的调整,自动配置类也拆分到各个模块对应的 autoconfigure 包里了,同样是为了减少不必要的依赖。

Spring AI 依赖项
3、升级到 MCP 0.9.0 (Breaking Change):
-
Spring AI 集成了最新的 Multimodal Client Protocol (MCP) 参考实现 0.9.0 版本。MCP 是 Spring AI 用于处理多模态交互(比如文本+图像)的一种协议。新版本带来了基于 Session 和 Exchange 的架构改进,更健壮、更符合规范。
-
如果你用到了 MCP 相关的功能,升级时需要参考官方 MCP 升级说明进行代码调整,地址:https://docs.spring.io/spring-ai/reference/upgrade-notes.html#upgrading-to-1-0-0-m7 。
4、模型集成更新与增强 (New and Enhanced Model Integrations):
-
Anthropic Claude: 支持了最新的 Claude 3.7 Sonnet 模型并设为默认,增加了 "thinking" 能力,API 命名向 "tool" 靠拢。
-
Mistral AI: 增加了内容审核模型、自定义 JSON 输出能力。
-
Ollama: 增加了更多模型参数和对新模型的支持(如 LLAMA3_2_3B)。
-
Azure OpenAI / OpenAI: 也有一些选项增强和问题修复。
5、重量级新特性:支持 Docker Desktop 的 Model Runner!
-
Docker Desktop 4.40 版本引入了 Model Runner 功能,可以在本地运行 AI 模型,并提供了一个与 OpenAI API 兼容的本地接口。
-
Spring AI M7 现在原生支持了这个功能!这意味着:
-
你可以在本地(比如 M 系列芯片的 Mac)直接运行像 Gemma 这样的模型,而不需要把数据发送到云端。
-
配置非常简单,只需要在 Spring AI 的 OpenAI 配置里把 base-url 指向本地 Model Runner 的地址(如 **http://localhost:12434/engines**)就行了,API Key 都可以忽略。
-
所有 Spring AI 的功能(函数调用、流式输出等)都能无缝对接本地模型。
-
-
这对于本地开发、调试、或者注重数据隐私的场景来说,简直是太方便了!
6、工具调用 (Tool/Function Calling) 和多模态能力增强:
-
工具执行框架有改进,比如增加了 ToolExecutionEligibilityPredicate 接口。
-
多模态方面,增强了对 Base64 编码图像的处理能力。
7、文档处理、记忆存储、向量数据库增强:
-
增加了 JSoup HTML 文档读取器。
-
新增了基于 JDBC 和 Neo4j 的 ChatMemory 实现。
-
新增了 Couchbase 向量数据库支持,并对 Milvus、PgVector 等现有向量库做了增强。
8、开发者体验提升:
-
改进了 Spring Boot 自动配置模式。
-
增强了 AOT 和 Native Image 的支持。
-
官方文档也做了更新,增加了 M7 的升级指南和模块架构图。