領先一步
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 時代思潮中無與倫比的思想多樣性,併為這個世界上最大的生態系統為未來做好了準備。但是,它竟然做到了!我迫不及待地期待明年的到來!