This Year in Spring – 2025年12月30日
嗨,Spring 爱好者们!你们敢相信吗?今天已经是12月30号了!我在洛杉矶与家人共度了圣诞节,然后我们登上了前往东南亚的航班,准备与更多的朋友和家人一起迎接新年。写下这段话时,我正坐在马来西亚吉隆坡一个闷热城市的咖啡馆里——深情地回顾2026年的最后一周以及整个一年。
没错!又到了我每年进行追溯性年终审视和分析的传统时刻;又到了"Spring 这一年"的时间,我们将回顾这一年中美好、伟大和令人惊叹的部分:一个不可思议年份中的五大最佳亮点。(当然,我们也会照常对本周的要闻进行回顾总结。)
那么,首先,让我们来看看2026年的五大主题。
Spring Boot 4
嗯,你们知道这个肯定会来。2025年是Spring生态系统翻开新一代篇章的巨大一年,从Spring Framework 7开始,以及所有构建在其之上的各种Spring项目——Spring Security 7、Spring Batch 6等等。然后我们迎来了Spring Boot 4!(实际上,顺便说一句,我们现在已经处于Spring Boot 4.0.1了…)
Spring Boot 4充满了令人惊叹的新功能,汇集了整个生态系统的改进,并在Spring Boot本身直接提供了许多便利。亮点包括声明式接口客户端、API版本控制、统一的Spring Security支持、新的Spring Batch无资源和基于MongoDB的存储库、一个名为BeanRegistrar的新配置模型,等等。
在此版本之上,还出现了所谓的"后Boot"项目,这些项目将Spring Boot本身作为依赖项。这包括Spring Cloud、Spring Modulith、Spring gRPC(目前)和Spring AI等项目。所有这些——除了Spring AI——都已经发布了与Spring Boot 4兼容的GA版本,你可以将Spring AI 2.0作为里程碑版本进行尝试。
这个新版本的Spring Boot代表了一个具有深远新功能的新一代。像往常一样,可以在Spring Initializr上尝试它!
AI.next
在2025年,通过我在YouTube、播客以及无数会议演讲中的工作,我与数百万人谈论了令人惊叹的Spring AI项目。这是一个如此了不起的努力,提供了在JVM上与AI技术最丰富的集成。
在2024年11月,也就是一年多以前,我们还开始了一个针对MCP规范的集成工作——当时是Anthropic的一项新兴工作。在2025年初,我们将这项工作捐赠给了MCP项目本身,成为MCP官方Java SDK的主要开发者。然后,我们在这个新的基础SDK之上重构了我们的Spring AI集成。这项工作持续快速进行,追踪了一个又一个规范变更,同时改进了组件模型等。MCP是划时代的技术,开启了整个集成和机会的生态系统。你将用它构建什么?
你上一次与AI LLM交谈并觉得第一次尝试就得到了正确回应是什么时候?我敢打赌,几乎没有。这种效应在使用更便宜、更小但具有大量实用性却缺乏前沿模型那种"读懂了我的心思!“质量的模型时更为明显。你可以通过一系列定义明确的步骤来累积状态以获得更好的结果——这就是所谓的智能体框架(如Embabel)的领域,它建立在Spring AI之上。
说到这,Spring AI正在疯狂增长。虽然它自带了20多个模型集成和20多个向量存储集成,但并非所有东西都能存在于Spring AI本身。这就是为什么我们创建了Spring AI社区组织,在那里你甚至可以找到更多的模型和集成。
我肯定会查看的三个项目:
- Spring AI Agents
- Spring MCP Security
- Spring AI Bench
Spring AI Agents项目支持将智能体CLI(如OpenAI Codex和Claude Code)进行包装,并为ACP(Agent Client Protocol)提供了一个丰富的包装器。为什么要使用CLI而不是直接使用模型?因为你的操作系统提供了丰富的工具集,AI可以用它们做神奇的事情。用Spring AI Agents来消除中间商——或者对它们进行编排。
AI智能体CLI社区存在一个基准测试问题。事实上的标准是SWE基准测试,但它用Python编写,而且任务已经过时多年。老实说:模型已经学会了应付测试。它们在那里表现得非常好——70%或更高。然而,如果将任务切换到Java,分数就会直线下降。Spring AI Bench旨在提供真实、现代且可快速、可重复测试的工作负载。
Spring MCP Security,正如你可能猜到的,跟踪MCP安全规范的变更,并为Spring AI和Spring Security用户提供紧密的集成。安全性、可观测性和可扩展性是面向企业级AI的核心支柱——而Spring在这方面无出其右。
安全作为一项功能
Spring Security度过了重要的一年。最近的Spring Security 6.x版本带来了一次性令牌和WebAuthn(更广为人知的名字是通行密钥)。通行密钥是一种将生物识别和多因素身份验证集成到应用程序中的出色、人性化且高度安全的方式。
Spring Security 7——作为Spring Boot 4系列的一部分——通过内置的多因素身份验证更进一步。这建立在已经非常丰富的集成之上,如SAML、Kerberos和OAuth。顺便说一句:Kerberos支持和独立的Spring Authorization Server(一个完整的OAuth身份提供者)现在也是Spring Security 7的一部分!
开放的Web
Spring始于一个Web框架。Spring MVC从Spring Framework的最早期就开始发布。不久之后,Spring-WS于2007年首次亮相,用于SOAP服务。2009年,Spring Framework 3为REST服务添加了强大的HTTP支持——后来通过Spring HATEOAS丰富了超媒体功能。
随后,我们探索了使用RSocket的二进制协议,接着与GraphQL Java团队合作提供了功能齐全的GraphQL支持。最近,我们宣布了Spring gRPC,提供了具有安全性、可观测性和GraalVM编译功能的一流gRPC支持。Spring gRPC在Spring Boot 4发布后不久就发布了GA版本——现在就去试试吧!
面向今天和明天的Java
快问:这是什么语言?
|
|
你猜对了:是Java。把它放进script.java并用java script.java运行。不需要编译步骤。你刚刚运行了第一个优秀的Java脚本。有很多糟糕的JavaScript——但这是一个Java脚本,而且它很棒!注意到不需要编译吗?还有,你注意到没有包含类吗?它和我一样,没有类!开发者体验随着每个版本的发布变得越来越好!
如今的Java通过虚拟线程实现了毫不费力的扩展,提供了类似Go的可扩展性,却没有async/await的冗长。你可以通过在Spring Initializr上选择GraalVM并运行以下命令,将Spring Boot应用程序转换为GraalVM原生镜像:
|
|
还没准备好完全转向原生镜像吗?Project Leyden和AOT缓存提供了可比的启动改进——通常能将启动时间缩短75%或更多。当然,我们也内置了对它的支持!
Brian Goetz的演讲"Growing the Java Language"阐述了一个引人注目的"可增长"特性哲学——语法、类型和库共同演进。例子包括Iterable<T>和AutoCloseable,它们都通过简单的接口解锁了强大的语言功能。
这种思维方式对于像Project Valhalla这样的努力至关重要,该项目旨在引入用户定义的值类型,这些类型的行为类似于基本类型,同时保持表达力和安全性。Valhalla将解锁显著的性能改进,并为Vector API等提供动力——使Java与C、Go和Rust保持竞争力。
成为Java和Spring开发者的时机从未如此之好,明年将继续这一趋势!
那么,闲话少说,让我们直接进入本周的要闻回顾!
要闻回顾
- 演进中的Spring Vault:引入VaultClient
- 上周在A Bootiful Podcast上,我与Nate Schutta进行了交谈
- Christian Tsolov带来的高效Spring AI工具调用
- Spring Boot 4:破坏性变更
- 使用Orkes Conductor编排流程
- 与Spring一起使用FaunaDB
- James Ward提问:2026年会是智能体AI之年吗?
- Spring Boot 4中的Kotlin序列化
- Spring Boot + Temporal.io
- HikariCP简介
- IntelliJ IDEA对Spring Data JDBC的支持
- 使用Spring Data Cassandra保存日期值
- Tanzu Platform仍然是企业Java应用程序的最佳场所
- 我最喜欢的企业启动器:Spring Boot Governance Starter
就是这样!这是2025年"Spring本周要闻"的最后一期。下周将是2026年的第一期。说起来有点疯狂,因为我是从2011年的第一周开始写这些帖子的,所以下周将标志着"Spring本周要闻"的15周年!(而且我一期都没错过!)
我相信我代表了整个Spring团队,祝愿你和你的家人有一个非常安全、快乐和健康的新年快乐!