Spring AI 2.x 发布:全面拥抱 Java 21,Redis 史诗级增强

Spring AI 2.x 发布:全面拥抱 Java 21,Redis 史诗级增强!

Spring AI 团队正式推出 Spring AI 2.0.0-M1,这不仅是一次常规的版本迭代,更是 2.x 系列的全新开篇。相较于此前发布的 Spring AI 1.1 正式版(带来 MCP 开箱即用、Prompt 缓存、自进化智能体等特性),本次里程碑版本完成了技术栈、基线版本与模型生态的“大换血”,以更强大的架构基座、更完善的存储能力和更丰富的模型支持,为企业级 AI 应用开发注入新活力。

整体来看,Spring AI 2.0.0-M1 共合入 67 项改动,其中包含 25 项围绕 AI 原生开发体验的功能增强、32 项面向新手的文档更新,以及 7 个稳定性修复与 3 个安全依赖升级,全方位夯实了版本基础,降低了开发与迁移门槛。

底层架构革新:全面拥抱 Java 21,锚定新一代 Spring 框架

作为 Spring AI 2.0 最根本的变化,底层架构实现了全面升级——已从 Spring Boot 3.x 彻底迁移至 Spring Boot 4.0 GA 与 Spring Framework 7.0,以 Jakarta EE 11 为技术基石,同时强制要求 Java 21 作为最低开发环境。这一迁移既带来了显著的技术红利,也对现有项目提出了明确的升级要求。

技术红利与迁移成本并存:一方面,开发者可直接享受到新一代框架在虚拟线程、AOT 编译、性能调优等方面的所有新特性,大幅提升 AI 应用的运行效率与资源利用率;另一方面,老项目需重点评估 Java 21 的升级成本,确保相关依赖与业务代码适配。本次架构迁移的对应 issue 地址:https://github.com/spring-projects/spring-ai/pull/4774

Redis 史诗级增强:记忆与检索能力双突破

本次版本中,Redis 生态获得跨越式升级,凭借全方位的能力强化,成为构建企业级 AI 应用的首选存储方案之一。核心升级集中在聊天记忆与向量存储两大核心场景,实现了从基础存储到智能服务的进阶。

1. Redis Chat Memory 全新实现

新增基于 Redis 的聊天记忆组件(含 Spring Boot Starter),彻底解决了会话上下文存储的核心痛点,其核心特性包括:

  • 持久化记忆:支持跨会话保留用户交互历史,避免上下文丢失,为长对话场景提供稳定支撑;

  • 检索增强:内置文本搜索与范围查询能力,可快速定位历史会话中的关键信息,提升智能交互的精准度;

  • 性能调优:完全开放向量检索的 HNSW 索引参数(M、efConstruction、efRuntime)配置权限,开发者可根据业务需求在“召回率”与“时延”之间进行精细权衡,适配不同量级的应用场景。

Redis Chat Memory 相关详细文档可查阅:https://docs.spring.io/spring-ai/reference/2.0/api/vectordbs/redis.html

2. Redis Vector Store 能力升级

向量存储能力同步迭代,新增文本搜索与范围查询功能,与 Redis Chat Memory 一致,同样开放 HNSW 相关参数配置。对于已接入 Redis 技术栈的团队而言,仅需引入以下 Maven 依赖,即可直接利用现有 Redis 基础设施构建生产级 AI 应用,无需额外部署 Milvus、Chroma 等专用向量数据库或记忆存储组件,大幅降低架构复杂度与运维成本。


<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-redis-store</artifactId>
    <version>2.0.0-M1</version>
</dependency>

模型生态爆发:Claude、OpenAI、Gemini 全面升级

在大模型接入层,本次更新实现了多厂商模型的深度适配与能力增强,覆盖主流 AI 模型生态,满足不同业务场景的需求。

Anthropic Claude:能力跃迁至 4.5 版本

一口气完成 Claude 4.5 Opus / Haiku 版本的支持,同时新增两大核心 API 与精细化工具调用能力:

  • Citations API:支持在回答中精确标注来源文档的具体片段(涵盖 PDF、纯文本等格式),对 RAG、智能问答等需溯源的场景至关重要,目前已支持 Claude 3.7 Sonnet 和 Claude 4 系列;

  • Files API:模型可直接生成并输出可下载文件(如代码、分析报告等),大幅强化 Agent / 工具型 AI 应用的实用性;

  • 工具调用优化:新增 Auto / Any / Tool / None 四种调用模式,可精细控制模型“何时调用工具”“如何调用工具”,提升工具使用的精准度与效率。

OpenAI:官方 Java SDK 原生集成

Spring AI 现已直接集成 OpenAI 官方 Java SDK,替代原有适配方案,兼容性与稳定性大幅提升。同时,默认聊天模型更新为当前前沿的 gpt-5-mini,开箱即用即可获得更优的生成效果与交互体验。

Google Gemini:思考深度可灵活调控

将 Google GenAI SDK 升级至 1.30.0 版本,关键新增 ThinkingConfig / ThinkingLevel 配置功能。简单来说,开发者可通过配置项控制“模型思考深度”,在推理质量与响应时延之间找到最佳平衡点,适配对响应速度有不同要求的业务场景(如实时交互 vs 离线分析)。

企业级特性补强:基础设施适配再升级

除模型与存储核心能力外,本次版本还针对企业级场景的基础设施需求,完成了多项关键补强:

  • Azure Cosmos DB Chat Memory:新增对应的 Spring Boot Starter,Azure 生态用户可直接将聊天记录存储至 Cosmos DB,无需编写大量样板代码,提升开发效率;

  • Model Context Protocol(MCP)增强:优化 MCP 客户端自动配置流程,引入可选的处理器注册表,同时改善对复杂 Bean 类型的支持,让 MCP 能更自然地融入现有 Spring 应用架构;

  • GemFire 向量存储安全加固:新增用户名 / 密码认证功能,满足企业环境的合规与安全要求,降低敏感数据泄露风险。

核心升级总结

Spring AI 2.0.0-M1 作为 2.x 系列的开篇之作,以“架构革新、存储增强、模型爆发、企业适配”为核心亮点,构建了更强大、更易用的 AI 开发框架:

  1. 基座升级:全面基于 Spring Boot 4.0 GA 和 Spring Framework 7.0 构建,强制要求 Java 21,拥抱新一代 Java 与 Spring 技术生态;

  2. Redis 增强:新增 Redis Chat Memory(支持持久化、检索),向量存储支持文本搜索与 HNSW 参数调优,确立 Redis 在 Spring AI 生态中 RAG/记忆系统的首选地位;

  3. 模型生态:Anthropic Claude 支持 4.5 版本与两大核心 API,OpenAI 集成官方 SDK 并更新默认模型,Google Gemini 支持思考深度配置;

  4. 企业特性:新增 Azure Cosmos DB 聊天记忆支持,增强 MCP 客户端配置,GemFire 向量存储实现安全认证,全方位适配企业级开发需求。

(注:文档部分内容可能由 AI 生成)

The use of configuration keys that have been renamed was found in the environment: Property source 'applicationConfig: [classpath:/application.yml]': Key: spring.redis.database Line: 18 Replacement: spring.data.redis.database Key: spring.redis.host Line: 16 Replacement: spring.data.redis.host Key: spring.redis.password Line: 19 Replacement: spring.data.redis.password Key: spring.redis.port Line: 17 Replacement: spring.data.redis.port Key: spring.resources.cache.period Line: 33 Replacement: spring.web.resources.cache.period Key: spring.resources.chain.cache Line: 37 Replacement: spring.web.resources.chain.cache Key: spring.resources.chain.gzipped Line: 35 Replacement: spring.web.resources.chain.compressed Property source 'Config resource 'class path resource [application.yml]' via location 'optional:classpath:/'': Key: spring.redis.database Line: 18 Replacement: spring.data.redis.database Key: spring.redis.host Line: 16 Replacement: spring.data.redis.host Key: spring.redis.password Line: 19 Replacement: spring.data.redis.password Key: spring.redis.port Line: 17 Replacement: spring.data.redis.port Key: spring.resources.cache.period Line: 33 Replacement: spring.web.resources.cache.period Key: spring.resources.chain.cache Line: 37 Replacement: spring.web.resources.chain.cache Key: spring.resources.chain.gzipped Line: 35 Replacement: spring.web.resources.chain.compressed Each configuration key has been temporarily mapped to its replacement for your convenience. To silence this warning, please update your configuration to use the new keys. 什么问题
08-22
<think>好的,用户提供的错误信息是关于Spring Boot配置文件中一些属性键已经被弃用,并建议替换为新的键。首先,我需要确认这些被弃用的属性在当前使用的Spring Boot版本中是否仍然有效,以及新键的具体用法。 用户提到的属性包括spring.redis.*和spring.resources.*相关的键。例如,spring.redis.database需要替换为spring.data.redis.database。这可能是因为Spring Boot在更新版本中对配置属性进行了重新组织,将一些模块的配置归入更具体的命名空间下,比如data.redis和web.resources。 接下来,我需要检查这些属性在当前项目中的使用位置,确保替换后的键在配置文件中正确应用。同时,需要注意替换后是否需要调整其他相关配置,或者是否有其他相关的属性也需要更新,以避免潜在的配置错误。 此外,用户可能还关心如何处理这些警告信息,是否需要立即更新配置文件,或者是否有其他替代方案。比如,如果暂时无法修改配置文件,是否有办法抑制这些警告,但长期来看还是建议更新到新键以确保未来的兼容性。 还需要考虑不同Spring Boot版本之间的差异,用户可能正在升Spring Boot版本时遇到这些问题。因此,需要确认用户当前使用的版本以及推荐的更新版本,并提供相应的迁移指南或文档链接,帮助用户顺利完成配置更新。 另外,用户可能对替换后的属性是否会影响应用程序的行为有疑问。例如,某些属性可能在新版本中有不同的默认值或处理方式,需要验证这些变更是否会影响应用的功能,尤其是在生产环境中。 最后,总结解决方案时,需要分步骤指导用户如何替换旧键,检查相关配置,并建议测试环境中的验证步骤,确保更新后的配置文件不会导致应用启动失败或功能异常。</think>这是 **Spring Boot 2.4+ 版本** 引入的配置属性迁移警告,提示你使用的部分配置键已被弃用(Deprecated),需要替换为新的命名规范。虽然旧键仍能正常工作(Spring 会自动映射),但建议更新配置以避免未来版本兼容性问题。 --- ### 🔍 问题原因 Spring Boot 从 **2.4 版本开始**,对配置属性的命名规则进行了标准化,主要变化包括: 1. **模块化命名空间**: - 例如 `spring.redis.*` 被归入 `spring.data.redis.*`(更明确归属 `spring-data-redis` 模块)。 2. **Web 资源配置调整**: - `spring.resources.*` 被归入 `spring.web.resources.*`(明确归属 Web 模块)。 --- ### 📝 需要替换的配置项 | 旧键(已弃用) | 新键(推荐使用) | 配置作用 | |----------------|------------------|----------| | `spring.redis.database` | `spring.data.redis.database` | Redis 数据库索引 | | `spring.redis.host` | `spring.data.redis.host` | Redis 主机地址 | | `spring.redis.password` | `spring.data.redis.password` | Redis 密码 | | `spring.redis.port` | `spring.data.redis.port` | Redis 端口 | | `spring.resources.cache.period` | `spring.web.resources.cache.period` | 静态资源缓存时间 | | `spring.resources.chain.cache` | `spring.web.resources.chain.cache` | 静态资源链缓存 | | `spring.resources.chain.gzipped` | `spring.web.resources.chain.compressed` | 静态资源链压缩支持 | --- ### ✅ 解决方案 1. **更新 `application.yml` 配置文件** 将旧键替换为新键(示例): ```yaml spring: data: redis: host: localhost port: 6379 password: database: 0 web: resources: cache: period: 3600 chain: cache: true compressed: true ``` 2. **验证配置是否生效** 启动应用后检查日志,确认是否仍有警告。如果配置正确,警告会消失。 3. **抑制警告(不推荐)** 如果暂时无法更新配置,可通过以下方式关闭警告(不建议长期使用): ```yaml spring: main: allow-legacy-aliases: false # 关闭旧键自动映射(慎用,可能导致配置失效!) ``` --- ### 📌 注意事项 1. **Spring Boot 版本差异** - 该警告仅出现在 **Spring Boot 2.4+** 版本,旧版本(如 2.3.x)无需修改。 - 在 **Spring Boot 3.x** 中,旧键可能被完全移除,必须更新配置。 2. **属性默认值变化** 某些属性在新命名空间下可能有不同默认值(例如 `spring.web.resources.chain.strategy` 的默认策略),需检查文档确认行为是否变化。 3. **IDE 自动提示** 使用 IntelliJ IDEA 或 Spring Tools Suite 时,新键会提供更好的自动补全和文档提示。 --- ### 📚 参考资料 - [Spring Boot 2.4 配置属性迁移指南](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.4-Configuration-Changelog) - [Spring Boot 3.0 移除旧键的官方说明](https://docs.spring.io/spring-boot/docs/3.0.0-M3/reference/html/configuration-metadata.html#configuration-metadata-changes) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值