企業專案中的 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 即將 GA! 您會驚訝於您已經可以做到什麼程度。 結合 IntelliJ IDEA 或 Eclipse 中最新的 Java 8 相容工具,您可能會發現您現在就需要的所有東西。

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

活動

讓我邀請您參加我下週舉辦的 Java 8 上 Spring Framework 4 線上研討會,涵蓋關鍵功能主題,重點關注在基於 Spring 的應用程式中使用 Java 8 功能:https://spring.dev.org.tw/blog/2014/02/11/webinar-spring-framework-4-0-on-java-8-march-25

您還會發現我在今年的幾個會議上談論 Java 8 上的 Spring,例如在 Berlin Expert Days、JAX Germany、QCon New York、GOTO Amsterdam、ÜberConf Europe,當然還有我們自己的 SpringOne,今年將在德克薩斯州達拉斯舉行!

取得 Spring 電子報

隨時關注 Spring 電子報

訂閱

取得領先

VMware 提供培訓和認證,以加速您的進展。

了解更多

取得支援

Tanzu Spring 在一個簡單的訂閱中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位檔案。

了解更多

即將舉行的活動

查看 Spring 社群中所有即將舉行的活動。

查看所有