企業專案中的 Java 8

新聞 | Juergen Hoeller | 2014年3月21日 | ...

隨著 Java 8 的 GA 版本終於在本週到來,讓我們都來歡慶吧——然後醒來想想如何在日常工作環境中引入它...

這對於原型開發來說足夠簡單:下載一個 JDK 8,安裝 IntelliJ IDEA 或 Eclipse 最近完成的 Java 8 支援,然後就可以開始了。挑戰在於下一步:你需要弄清楚如何將你的應用部署到支援 Java 8 的環境中。

當然,在實踐中,這個考量可能來得更早:在你願意或被允許嘗試 Java 8 之前,你需要先有一個支援 Java 8 的部署計劃。在許多情況下,你甚至不會去嘗試,因為你事先就知道目前不可能將 Java 8 引入到你的生產系統中。

不可能?真的嗎?讓我們針對特定的部署環境重新考慮一下...

Java 8 與已有的 Java EE 6 應用伺服器

對於 Java EE 伺服器,通常存在一個以捆綁 JDK 版本形式出現的升級障礙。對於 WebSphere,即使在 WAS 8.5 上,預設的 JDK 仍然是 Java 6,Java 7 是可選的。而 WebLogic 的最新版本則更強地基於 Java 7。然而,這兩款伺服器都不允許你自由選擇要使用的 JDK 版本。

由於應用伺服器棧通常與特定的 JDK 版本深度整合,因此不建議直接將其執行在不同的 JDK 安裝上。當前一代的應用伺服器即使在針對 JDK 8 的啟動冒煙測試中也可能無法存活。

對於 GlassFish 和 JBoss AS 等靈活的產品,你可能可以將它們指向一個 JDK 8 安裝,並使伺服器執行起來。然而,這通常只有在使用 "-target 1.7" 時才有效;一旦你開始使用 Java 8 語言特性,伺服器的某些部分和一些整合的服務提供商就會在 "-target 1.8" 下崩潰...

Java 8 與最近釋出的 Java EE 7 應用伺服器

WildFly 8 是 JBoss AS 7 的繼任者,它實際上是第一個具有基本 JDK 8 相容性的 EE 伺服器。其開源版本已經普遍可用。然而,Red Hat 尚未提供基於 WildFly 8 的 JBoss EAP 版本的官方支援。

至於 GlassFish 4,Oracle 已於去年停止商業支援,此後沒有釋出維護版本,也沒有官方支援合同可用。儘管如此,基本的 JDK 8 支援可能會在今年晚些時候的 GlassFish 4.0.1 版本中出現。

更新(9月30日):半年後,GlassFish 4.1 現已支援 JDK 8。此外,Oracle 還認證了最近釋出的 WebLogic 12.1.3 —— 該版本支援部分 EE 7 規範,但尚未成為完整的 EE 7 平臺伺服器 —— 現已可在 JDK 8 上執行。

Java 8 與 Tomcat / Jetty

像 Tomcat 和 Jetty 這樣的輕量級 Web 應用伺服器在這方面具有明顯的優勢,因為它們不依賴於任何特定 JDK 版本的細節。Tomcat 8 和 Jetty 9 已經針對 OpenJDK 8 進行了半年的測試,並且普遍宣告與 Java 8 相容。即使是 Tomcat 7 也加入了這個行列,也獲得了升級的 Eclipse 編譯器等支援。

因此,Tomcat 和 Jetty 都可作為與 JDK 8 一起使用的立即可用的生產級選項。從 Pivotal 的角度來看,我們正盡最大努力支援 JDK 8 上的 Tomcat,這包括我們對 Apache Tomcat 本身的參與以及透過我們的 tc Server 產品。

當然,你通常不會使用純粹的 Tomcat 或 Jetty,而是在你的部署單元中新增特定的框架和庫。顯然,這些庫也需要與 Java 8 相容。它們中的許多天然就相容,但請務必仔細檢查你的持久化提供商和繫結框架,因為它們可能尚未完全支援 Java 8 位元組碼。

Java 8 與 Spring

Spring Framework 4 一開始就設計成與 Java 8 相容的方式。事實上,我們在第一個 OpenJDK 8 釋出候選版本可用之前,就釋出了帶有全面 Java 8 開發支援的 Spring Framework 4.0 GA。

從我們的角度來看,在 Java 8 上執行 Spring Framework 4 是許多環境中的絕佳組合,不僅限於 Tomcat、Jetty 或 WildFly,還包括最近的嵌入式引擎,如 Reactor 或 Undertow,以及其他各種自定義應用架構。

現在正是嘗試在 Java 8 上構建 Spring 應用的最佳時機,因為 JDK 8 已經正式釋出了!你會驚訝於它能為你帶來多大的便利。結合 IntelliJ IDEA 或 Eclipse 中最近支援 Java 8 的工具,你可能會發現你需要的一切都近在眼前。

所以請不要等到 2016 年才開始嘗試 Java 8...

活動

我邀請您參加我下週關於 Spring Framework 4 在 Java 8 上的網路研討會,重點介紹 Spring 應用中 Java 8 特性的使用:https://springframework.tw/blog/2014/02/11/webinar-spring-framework-4-0-on-java-8-march-25

今年您還會在多個會議上聽到我關於 Spring 在 Java 8 上的演講,例如柏林專家日(Berlin Expert Days)、德國 JAX、紐約 QCon、阿姆斯特丹 GOTO、歐洲 ÜberConf,當然還有我們自己的 SpringOne,今年九月將在德克薩斯州達拉斯舉行!

獲取 Spring 新聞通訊

訂閱 Spring 新聞通訊,保持聯絡

訂閱

領先一步

VMware 提供培訓和認證,助你加速前進。

瞭解更多

獲取支援

Tanzu Spring 透過一項簡單的訂閱,即可提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案。

瞭解更多

即將到來的活動

檢視 Spring 社群所有即將到來的活動。

檢視全部