SpringOne Platform 會議最近在華盛頓特區(qū)舉行,會上發(fā)布和宣布了諸多事項。Spring 框架的聯(lián)合創(chuàng)始人兼 Pivotal 的首席工程師 Juergen Hoeller 討論了 Java 8、Java 新的發(fā)布節(jié)奏,并宣布 Spring 框架 5.1 版本將會支持剛剛發(fā)布的 Java 11。

Hoeller 首先引用了去年的一項調(diào)查:

迄今為止,Java 8 是 Java 歷史上應(yīng)用最廣泛的平臺版本。它的應(yīng)用范圍超過了 Java 6。但是,我們將會迎來一種破壞性的 Java 發(fā)布節(jié)奏。

對于這種新的發(fā)布節(jié)奏,Hoeller 花了些時間討論 Spring 如何支持不同的 Java 版本。Spring 框架 4.3 最多只會支持到 Java 8。Spring 框架 5.0 最初支持 Java 9,Spring 框架 5.1 最低需要 JDK 8 并正式支持 Java 11。在他的主題演講中,Hoeller 明確表示之前版本的 Spring 框架將不會正式提供對 Java 11 以及更高版本的支持。

除了對 Java 11 的支持之外,Spring 5.1 還有許多重要的改進,包括與最近發(fā)布的 Reactor Californium 和 Hibernate ORM 5.3 的集成。

另外,框架內(nèi)部對反射的使用也進行了優(yōu)化,以便于改善啟動時間和降低堆內(nèi)存消耗,核心容器為 Java 和 Kotlin 都引入了函數(shù)式 bean 定義的改進。

在 Java 和 Kotlin 的函數(shù)式 bean API 方面,我們花費了很多的時間進行調(diào)優(yōu)?,F(xiàn)在,我們有了新的檢索 API,在對反射的使用以及內(nèi)部元數(shù)據(jù)的主動緩存方面我們進行了許多優(yōu)化,以改善啟動時間和減少 GC 壓力。

Pivotol 還花費了很多的時間在 Graal 兼容性上,這是一個多語言的新 JIT 編譯器和運行時,Hoeller 將其描述為“來自 Oracle 的非常有意思的研究成果”。

通過預(yù)編譯,我們所交付的二進制文件要比傳統(tǒng) JVM 快得多,我們已經(jīng)在 Spring 5.1 上做了很多準(zhǔn)備工作,它能夠理解很多限制,我們計劃在 Spring 框架 5.2 版本中交付一個完整的 Graal 兼容性 story。

Web 應(yīng)用技術(shù)棧也得到了很多的關(guān)注,從端點一直到核心容器都有對用戶體驗更好的調(diào)試日志。它還包含了一個 DSL 風(fēng)格的構(gòu)建器,用于函數(shù)式 Web 端點,并為 Netty 運行時擴展了對 WebFlux HTTP/2 的支持。

關(guān)于 Java 新的發(fā)布節(jié)奏對 Spring 所帶來的影響,Hoeller 這樣說到:

在可預(yù)見的未來,Java 8 將會作為我們的基準(zhǔn)。整個生態(tài)系統(tǒng)都是或者將是以 Java 8 為基礎(chǔ)的。2023 年之前,Java 8 會有來自業(yè)界許多利益相關(guān)者的支持承諾。因此,從一個保守組織的角度來看,Java 8 是一個很好的基準(zhǔn)。

剛剛發(fā)布的 Java 11 是 Java 的下一個長期支持版本,Hoeller 將其視為 Java 8 的替代方案。就像 Java 8 一樣,它也得到了很多供應(yīng)商的長期支持承諾,包括 Oracle、Azul、Red Hat、IBM 和 SAP,它們承諾會支持到 2023 年甚至更久。

在此之后,下一個長期支持的發(fā)布版本將會是 2021 年的 Java 17。Hoeller 說到,“坦白來講,我預(yù)計非 LTS 的 Java 發(fā)布版本受眾將會很有限。在 17 版本之前,我希望人們保持使用 8 或 11 版本”。