我的 SpringOne 2023 回顾

工程 | Josh Long | 2023 年 8 月 29 日 | ...

Spring 粉丝们,大家好!瞧,这是自疫情以来首次在线下举办的 SpringOne(也是 2020 年代以来的首次)结束后的周一,说实话,我累坏了!拉斯维加斯令人头晕目眩、感官轰炸、应接不暇、激动人心,SpringOne 也是如此。但这一切都值得。SpringOne 大会超出了所有预期,所以绝对值回票价。

这种盛大规模在主题演讲中表现得淋漓尽致,现场座无虚席。我无法回顾整个大会,但我确实想谈谈你在主题演讲中看到的一些重要主题。

在主题演讲中,优秀、杰出、无与伦比的 David Syer 博士、Moritz Halbritter 和我一起庆祝了 Spring Boot 的十周年。(是的,它已经十岁了。我也不敢相信!)今年,我们还庆祝了 Spring Framework 的二十 (20!) 周年。你们中敏锐的人会知道,Spring Framework 1.0 直到 2004 年才发布,那是 19 年前,但 Spring Framework 有早期版本,看起来并被称作我们今天所知的 Spring Framework。你们中特别敏锐的人可能会记得,Spring Boot 于 2014 年 4 月 1 日发布,那是九年前,但 2013 年也有早期版本。

Syer 博士和我回顾了过去十年,审视了技术的各种版本,包括一些趣闻轶事和对事物如何变化、演变以及(重要的是)如何保持不变的思考。我们做了一些不可思议的事情。我们(可能是限时地?)复活了古老的 Spring Initializers!想生成一个以 Spring Boot 1.0 为中心的项目吗?访问 start100.spring.io。1.5 版本?Start150.spring.io。2.0 版本左右?start200.spring.io。当然,如果你想构建一个 3.x 项目,请访问现代化的 start.spring.io 体验。在我们的演示中,我们将同一个应用从 1.0 版本(看!starter、start.spring.io、自动配置等)、2.0 版本(响应式、动画 ASCII 艺术、Kubernetes 支持等)一直演进到 Spring Boot 的倒数第二个版本,即 2022 年 11 月发布的 3.0 版本(GraalVM 本机镜像、优化、Jakarta EE 等)。但 3.1 版本呢?

Spring Boot 的贡献者 Moritz Halbritter 身着 Lederhosen (你必须在现场才能感受到那种气氛...),帮助 Syer 博士和我了解了 Spring Boot 3.1 的最新和最重要特性,包括添加了 Testcontainers 和 Docker Compose 支持。这整个 15 分钟非常有趣,但这远远不是那天我们看到的唯一内容。

Spring Framework 的负责人、传奇人物、联合创始人 Juergen Hoeller 回顾了 Spring 的 20 年历史(还有谁比他更合适呢?他全程参与了这 20 年!),然后介绍了 Spring Framework 6.1(以及今年 11 月底发布的 Spring Boot 3.2)支持的一些精彩新机遇和主题,包括 Project Loom、Project CRaC、Java 21 等等。

Juergen 摆好了桌子,接下来的演讲者端上了甜点,为我们带来了更多细节。对我来说,Cora Iberkleid 的贡献可能是主题演讲中最喜欢的部分,她介绍了 Spring Framework 6.1 中虚拟线程(Project Loom)的不可思议的力量(并揭开了它的神秘面纱)。她介绍了 spring.threads.virtual.enabled=true,你需要在 Spring Boot 3.2 和 Spring Framework 6.1 中指定它,以在 Apache Tomcat、Spring Data 等受支持的组合项目中启用虚拟线程。

我一直说虚拟线程可能是我最喜欢的加入到 Java 中的单一特性。人们曾经离开 Java 生态系统,转而使用远远不如 Java 的语言,只为了获得 Project Loom 有望带给 Java 的能力。它就是如此具有革命性,我迫不及待!记住,包含 Project Loom 的 Java 21 将于 2023 年 9 月 19 日发布!千万不要错过!

Project Loom 有望显著提高处理阻塞 I/O 工作负载的可伸缩性,但启动和性能方面呢?Spring 在 GraalVM 方面有很好的进展,自 Spring Boot 3.0 和 2022 年以来一直支持 GraalVM。这个故事只会越来越好。GraalVM 在降低给定服务的内存开销缩短启动时间方面表现出色。

但 GraalVM 并不是提高启动时间的唯一方法。Spring Framework 6.1 中还支持一项名为 Project CRaC(Checkpoint 协调恢复)的新计划,它可以显著提高启动时间。响应式和 Netty 领域的传奇人物 Violeta Georgieva 登台讨论了使用 JVM 检查点恢复实现零缩放。

启动时间对于各种工作负载都至关重要,例如平台即服务,但在无服务器、零缩放和函数即服务平台中尤其如此。在这方面,我们有一些令人兴奋的新进展。AWS 的 Mark Sailles 和 Spring 及事件处理领域的传奇人物 Oleg Zhurakousky 介绍了一个令人兴奋的新领域:编写 Spring MVC 风格的 `@Controller`,它们可以在 AWS Lambda 和 Azure Functions 等无服务器基础设施上部署并实现零缩放。

谈到 Azure,微软的 Asir Selvasingh 和 VMWare 的 Adib Saikali 有一段精彩的介绍,介绍了 Azure Spring Apps 的一些精彩新机遇(和折扣!)。Azure Spring Apps 是一个在 Microsoft Azure 上运行的联合开发和管理的平台。他们演示的内容之一是使用 AI——“人工智能?”我听到你惊呼,“在 2023 年?这我可万万没想到!”——通过 Azure 的 OpenAI 集成,这是一种托管式的 OpenAI 即服务产品,人们可以通过 Microsoft Azure 以熟悉、集成的方式使用它。它与新的 Spring AI 项目配合得天衣无缝!

这就引出了这一点:Spring AI 来了!这个小小的环节人气爆棚。Spring Data 的首任负责人、Spring.NET 的创建者、Spring Cloud Data Flow 的联合创始人、传奇人物 Mark Pollack 博士举办了一个关于新兴 Spring AI 的研讨会,反响热烈。我甚至还与他一起进行了直播来讨论它。Spring AI 提供了一个简单的 AiClient,你可以进行自动配置(为你选择的大语言模型提供适当的密钥),并注入它来生成对人类语言查询的响应。生逢其时!

有一段令人难以置信的五分钟蒙太奇视频,其中包含来自 Spring 生态系统中的知名人士的赞誉、祝贺和美好祝愿——例如 Matt Raible (Okta 开发者布道师,同时也是 Java Champion)、Trisha Gee (Gradle 开发者布道师,同时也是 Java Champion)、Mala Gupta (Jetbrains IntelliJ IDEA 开发者布道师,同时也是 Java Champion)、Sergei Egorov (Testcontainers 和 Atomicjar 联合创始人)、Andreas Marek (GraphQL Java 创始人)、Alina Yurenko (Oracle Labs 的 GraalVM 开发者布道师)、Roman Elizarov (Kotlin 语言和协程领域的杰出人物) 以及 Marc Philipp (JUnit 团队负责人)。

这些只是部分重要主题,你应该在这里观看完整内容。我根本不可能捕捉到哪怕是我最喜欢的十个会议。你应该在它们上线后在这里观看。(已经有一些上线了,所以赶紧去看吧!)

这次大会肩负着一项看似不可能的任务——为 SpringOne 提供期待已久的线下回归,同时庆祝 Spring 的 20 周年(你看了这个吗?)和 Spring Boot 的 10 周年,与此同时,它还要捕捉现代 JVM 时代精神中无与伦比的思想多样性,并为世界上最庞大的生态系统迎接未来做好准备。但不知怎的,它做到了!我迫不及待想参加明年的大会!

获取 Spring 新闻通讯

订阅 Spring 新闻通讯,保持连接

订阅

领先一步

VMware 提供培训和认证,助你快速进步。

了解更多

获取支持

Tanzu Spring 在一项简单的订阅中提供了 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看全部