Java基础、中级、高级、架构面试资料

Spring AI 2.0 发布,抛弃了 Spring Boot 3.x 和 Spring 6.x

JAVA herman 11浏览
公告:“业余草”微信公众号 AI 中转站提供免费体验,点击链接 https://unity2.ai/register?ref=3XTnndN2 进行访问,支持 Claude、ChatGPT、Gemini 等最新模型!关注业余草微信公众号,添加作者微信:xttblog2!
本博客日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.1Spring 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 状态
OpenAI3 种变体(Azure、HTTP、SDK)统一为官方 SDK 一种
Anthropic2 种变体(HTTP、SDK)统一为官方 SDK 一种
Google GenAI2 种实现(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.mdAGENTS.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