領先一步
VMware 提供培訓和認證,助你快速進步。
瞭解更多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 時代精神中無與倫比的思想多樣性,併為世界上最龐大的生態系統迎接未來做好準備。但不知怎的,它做到了!我迫不及待想參加明年的大會!