领先一步
VMware 提供培训和认证,助您加速进步。
了解更多嗨,Spring 的粉丝们!看,今天是 2020 年代以来第一次,也是疫情以来第一次线下举办的 SpringOne 的星期一,说实话,我累坏了!拉斯维加斯是一次令人眼花缭乱、令人激动、令人不知所措、令人兴奋的体验,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(看!starters、start.spring.io、自动配置等),发展到 2.0(响应式、动画 ASCII 艺术、Kubernetes 支持等),一直到 Spring Boot 的倒数第二个版本,即 3.0 版本(GraalVM 原生镜像、优化、Jakarta EE 等),该版本于 2022 年 11 月发布。那么 3.1 呢?
Spring Boot 贡献者 Moritz Halbritter,身着皮裤(你们当时真该在场……),帮助 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 生态系统,转而使用功能差得多的语言来获得 Project Loom 所承诺的 Java 功能。这是如此革命性的,我迫不及待了!请记住,包含 Project Loom 的 Java 21 将于 2023 年 9 月 19 日发布!千万不要错过!
Project Loom 承诺显著提高阻塞 I/O 工作负载的可伸缩性,但启动和性能又如何呢?Spring 在 GraalVM 方面有着出色的表现,自 Spring Boot 3.0 和 2022 年以来一直支持它。这个故事只会越来越好。GraalVM 在减少给定服务的内存开销以及提高启动时间方面表现出色。
但 GraalVM 并不是提高启动时间的唯一方法。在 Spring Framework 6.1 中,还有一个名为 Project CRaC(Coordinated Restore at Checkpoint)的新计划,它提供了显著改善的启动时间。响应式和 Netty 领域的传奇人物 Violeta Georgieva 登台讨论了使用 JVM checkpoint restore 实现向零扩展。
启动时间对于各种工作负载都至关重要,例如平台即服务,尤其是在无服务器、零扩展和功能即服务平台中。在这里,我们看到了一些令人兴奋的新进展。AWS 的 Mark Sailles 以及 Spring 和事件驱动领域的传奇人物 Oleg Zhurakousky 介绍了一个令人兴奋的新领域:编写可在无服务器基础设施(如 AWS Lambda 和 Azure Functions)上部署和零扩展的 Spring MVC 风格的 `@Controller`。
说到 Azure,微软的 Asir Selvasingh 和 VMWare 的 Adib Saikali 有一个精彩的环节,介绍了 Azure Spring Apps 的一些精彩新机会(和折扣!),这是一个在 Microsoft Azure 上运行的联合开发和管理的平台。他们演示的一个功能是使用 AI——“人工智能?”我听到您惊呼,“2023 年了?我真没想到会这样!”——通过 Azure 的 OpenAI 集成,这是一种托管的 OpenAI 即服务产品,人们可以通过 Microsoft Azure 以熟悉、集成的方式使用它。它与新的 Spring AI 项目配合得非常出色!
这让我们谈到 Spring AI:Spring AI 已经到来!这个小小的环节非常受欢迎。传奇人物 Mark Pollack 博士,Spring Data 的首位负责人,Spring.NET 的创建者,以及 Spring Cloud Data Flow 的联合创始人,他有一个关于新兴的 Spring AI 的讨论会,充满了兴趣,我甚至还和他一起进行了 直播来谈论它。Spring AI 提供了一个简单的 AiClient,您可以对其进行自动配置(提供您选择的大型语言模型的相应密钥)并注入,然后它就可以根据人类语言查询生成响应。真是个令人兴奋的时代!
有一个令人难以置信的五分钟集锦,充满了来自 Spring 生态系统中各种重要人物的赞誉、祝贺和祝福——例如 Matt Raible(Okta 开发者布道师和 Java 冠军)、Trisha Gee(Gradle 开发者布道师和 Java 冠军)、Mala Gupta(Jetbrains IntelliJ IDEA 开发者布道师和 Java 冠军)、Sergei Egorov(Testcontainers 和 Atomicjar 联合创始人)、Andreas Marek(GraphQL Java 创始人)、Alina Yurenko(Oracle Labs 的 GraalVM 开发者布道师)、Roman Elizarov(Kotlin 语言和协程领域的杰出人物)以及 Marc Philipp(JUnit 团队负责人)。
这只是其中一些主要亮点。您可以直接在这里观看。我根本无法捕捉到我最喜欢的十个环节。当它们上线后,您应该在这里观看它们。(其中一些已经在线了,快去看吧!)
这次展会承担了无比艰巨的任务——在庆祝 Spring 的 20 周年(您看过这个吗)和 Spring Boot 的 10 周年的同时,实现了 SpringOne 期待已久的回归线下活动,同时捕捉了现代 JVM 时代思潮中无与伦比的思想多样性,并为这个世界上最大的生态系统为未来做好了准备。但是,它竟然做到了!我迫不及待地期待明年的到来!