本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
【腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云
今天智谱市值大涨,群里不少人叹息,刚上市的时候,涨了一点就卖了没拿住。从年初到今天,智谱市值突破了万亿港元,同时股票涨了 2000% 多,超过了小米、美团、京东等互联网企业的市值。
现在,如果哪个 Java 程序员不做 AI,不用 AI,不会 AI,不学习 AI,就是死路一条。刚好最近 Spring AI 2.0.0 发布了,终于从“能用”到“好用”了,Java 在 AI 领域的开发也进入到了工程化时代。
这次,Spring AI 2.0.0 GA 的正式发布,不是一次简单的版本迭代,而是一次从底层架构到开发者体验的全面重构。接下来,希望通过本文带领大家深入解读这次发布背后的设计哲学、核心新特性、关键修复,以及社区的真实反响。
为什么这次发布如此重要?
Spring AI 自诞生以来,一直以“让 Java 开发者像调用数据库一样使用 AI”为使命。但正如官方博客所言,项目早期的快速扩张也带来了一些“成长的烦恼”:API 设计不够统一、Options 配置逻辑混乱、各模型厂商的适配方式参差不齐等等。
现在,Spring AI 2.0 的核心目标只有一个,那就是建立一个新的工程化基线。
官方团队花了数月时间,从设计一致性、代码质量、社区协作三个维度进行了彻底重构。用一句话概括来说就是,Spring AI 2.0 把 AI 应用开发从“Python 实验室”拉回了“企业级 Java 工程体系”。
话虽这样说,但真实情况如何,还有待时间检验。
文章配图参见 https://mp.weixin.qq.com/s/VNhEsEJa77ZFRaX912IKwA。
Spring AI 2.0 到底发布了什么?
全新基线
Spring AI 2.0 明确要求 Spring Boot 4.0/4.1 和 Spring Framework 7.0 作为运行基线,并推荐 Java 21+。这不仅仅是依赖升级,更是带来了底层能力的质变。
- Jackson 3 迁移:JSON 序列化性能大幅提升,
ObjectMapper变为不可变对象,需要通过JsonMapper.builder()构建。Spring AI 2.0 同时引入了JsonHelper类,方便开发者自定义JsonMapper。 - JSpecify 空安全注解:整个代码库全面标注
@NullMarked,结合 Kotlin 的空安全机制,能在编译期就拦截大量 NPE 风险。 - 模块化自动配置:Spring Boot 4 移除了 3.x 中所有废弃的 API,自动配置架构更加清晰。
更重要是,Spring Boot 3.5 和 Spring Framework 6.2 将于 2026 年 6 月 30 日 结束生命周期(EOL)。官方建议,仍在使用 1.x 的团队,需要尽快规划升级路径。
Options 体系大重构
这是 2.0 中最影响日常开发的改动之一。官方对 Options 和配置属性的处理进行了彻底重构,告别“配置地狱”。
- 默认值统一下沉:所有默认值现在统一定义在 Options 层面,而非模型或配置属性中。
- Builder 模式全面替代构造函数:Options 只能通过 Builder 创建,一旦实例化即为不可变对象。
- 反射-free 的合并能力:Builder 提供了统一的合并能力,无需依赖反射。
- 配置属性路径简化:移除了
application.properties中冗余的.options段,修复了大量由此引发的 Bug。
// 2.0 之前:配置路径冗长且容易出错
spring.ai.openai.chat.options.temperature=0.7
// 2.0 之后:路径更直观
spring.ai.openai.chat.temperature=0.7
模型支持聚焦
Spring AI 2.0 对核心模型支持进行了战略聚焦,从“支持尽可能多的厂商”转向“把核心厂商做深做透”,从大而全到精而深。
| 厂商 | 1.x 状态 | 2.0 状态 |
|---|---|---|
| OpenAI | 3 种变体(Azure、HTTP、SDK) | 统一为官方 SDK 一种 |
| Anthropic | 2 种变体(HTTP、SDK) | 统一为官方 SDK 一种 |
| Google GenAI | 2 种实现(GenAI SDK、Vertex) | 统一为 GenAI SDK |
| Amazon Bedrock | 保持支持 | 保持支持 |
| Mistral AI | 保持支持 | 保持支持 |
| DeepSeek | 保持支持 | 保持支持 |
| Ollama | 保持支持 | 保持支持 |
这背后的逻辑其实很清晰,通过直接对接厂商官方 SDK,Spring AI 能更快跟进模型 API 的新特性和扩展。同时,OCI Generative AI(Oracle)和 Azure Cosmos DB 等支持现在由厂商直接维护,与 Spring AI 团队协同开发。
三大核心新特性深度解读
特性一,Agentic 支持全面升级
在 1.x 中,每个 ChatModel 内部都藏着一个私有的 Tool Calling 循环,开发者无法介入、无法扩展、无法替换执行策略。你可以调用工具,但无法基于工具调用构建更复杂的 Agent 逻辑。
Spring AI 2.0 彻底改变了这一点,工具调用循环“上浮”到 Advisor 链,推出 Advisor 链式架构。
ChatClient 现在将每个请求都通过一个有序的 Advisor 链处理,并支持循环机制,Advisor 可以重新进入下游链。工具调用循环、结构化输出重试循环、评估循环都基于同一套机制驱动。
// ToolCallingAdvisor 自动注册,实现完整的工具调用往返
// 不再需要手动处理工具循环
ChatClient chatClient = ChatClient.builder(chatModel)
.defaultAdvisors(new ToolCallingAdvisor())
.build();
同时,渐进式工具披露方面也支持数百个工具了。
ToolSearchToolCallingAdvisor 带来了革命性的渐进式工具披露机制。它不再把全部工具一次性注册给模型,而是:
- 每个会话只索引一次完整工具集
- 让模型按需检索相关工具
- 大幅降低了上下文窗口压力和 Token 消耗
这对于企业级应用至关重要——当业务系统有上百个 API 时,传统方式会导致 Prompt 爆炸,而 2.0 的渐进式披露让大规模工具调用成为可能。
当然,这个特性也支持结构化自校正输出。
即使启用了原生结构化输出,模型仍可能返回不符合 Schema 的 JSON。StructuredOutputValidationAdvisor 可以自动检测验证失败并触发自校正,无需开发者手动编写重试逻辑。
特性二,MCP 集成进入生产级
Model Context Protocol(MCP)正在快速成为 AI 集成的通用协议。Spring 团队本身就是官方 MCP Java SDK 的维护者,因此 Spring AI 2.0 的 MCP 集成天然具备协议同步优势。
在注解驱动编程模型方面,mcp-annotations 模块正式并入 Spring AI 核心。只需一个注解,就能将任何 Spring Service 暴露为 MCP Server。
@Service
public class OrderService {
@McpTool(description = "查询订单状态")
public OrderStatus getOrderStatus(@McpParam String orderId) {
// ...
}
@McpResource(uri = "orders://{orderId}")
public Order getOrder(@McpParam String orderId) {
// ...
}
}
Streamable HTTP 也成为了默认的传输层。MCP 的 WebMVC 和 WebFlux 传输实现已从 SDK 迁移到 Spring AI 中,与框架发布节奏对齐。Streamable HTTP 取代已废弃的 SSE 成为默认传输协议,其无状态变体可用于远程部署的横向扩展。
企业级安全与可观测性也得到了支持。
- Micrometer + OpenTelemetry:完整的链路追踪和指标采集
- OAuth 2.0 / API Key 安全:通过
spring-ai-community/mcp-security项目提供生产级安全能力
特性三,ChatClient 成为唯一门面
Spring AI 2.0 明确了 API 分层:
- ChatClient:面向开发者的主要 API,承载所有高级能力(Advisors、Memory、RAG、Tool Calling 等)
- ChatModel:底层构建块,仅在需要完全控制时直接使用
这种分层让日常开发更加简洁,同时保留了底层扩展的灵活性。
关键 Bug 修复与稳定性提升
根据 GitHub Release 页面,2.0.0 正式版修复了以下关键问题。
| 修复项 | 影响 |
|---|---|
| 过滤 ChatMemory 中不支持的工具消息(Cassandra/Mongo/JDBC) | 防止工具调用消息在持久化时引发异常 |
从 Advisor Builder 中移除 streamToolCallResponses | 清理 API,避免误用 |
补全 OpenAiChatOptions 缺失的 promptCacheKey 参数 | 支持 OpenAI 的 Prompt Caching 功能 |
| 保留 OpenAI 工具调用的附加属性 | 确保工具调用的元数据不丢失 |
此外,文档体系也得到了显著增强:
- 发布了完整的 2.0 API 参考文档
- 新增
CLAUDE.md和AGENTS.md,为 AI 编码助手提供项目上下文 - 统一的升级指南,帮助 1.x 用户平滑迁移
社区生态繁荣
Spring AI 2.0 不只是核心框架,它的发布也带动了社区生态的繁荣。
spring-ai-session
spring-ai-session 事件溯源的对话记忆,就是一个社区驱动的 ChatMemory 替代方案,它支持:
- 所有消息类型(包括工具调用消息)
- 可插拔的、回合感知的压缩策略
- LLM 驱动的自动摘要,当上下文窗口满时自动触发
spring-ai-agent-utils
这是一个生产级 Agent 构建工具包,基于 Spring AI 2.0 的 Agentic 基础,提供了一系列可组合的工具和 Advisor。
- Agent Skills:符合 AgentSkills 规范的便携实现
文件、Shell、Web 抓取、任务管理、自动记忆等实用工具
社区治理升级
面对激增的 PR(其中大量来自 AI 编码助手),Spring AI 团队发布了全新的 CONTRIBUTING.md,明确了人类贡献者和 AI Agent 的协作规范,强调人工审核仍然是必须的。
最后
总的来说,Spring AI 2.0 的发布,标志着 Java 在 AI 开发领域正式具备了与 Python 生态抗衡的工程化能力。它不再是“能用 Java 调用大模型”的 Demo 级框架,而是一个可维护、可观测、可扩展、可协作的企业级 AI 应用开发平台。
从 Advisor 链式架构到 MCP 原生集成,从 Jackson 3 到 JSpecify 空安全,从 Options 重构到社区治理升级,每一项改动都指向同一个目标,让 Java 团队在不放弃现有工程体系的前提下,构建生产级的 AI 应用。
Spring AI 真的是越来越强,越来越好用了。

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!
本文原文出处:业余草: » Spring AI 2.0 发布,抛弃了 Spring Boot 3.x 和 Spring 6.x