領先一步
VMware 提供培訓和認證,助你加速前進。
瞭解更多隨著 Java 8 的 GA 版本終於在本週到來,讓我們都來歡慶吧——然後醒來想想如何在日常工作環境中引入它...
這對於原型開發來說足夠簡單:下載一個 JDK 8,安裝 IntelliJ IDEA 或 Eclipse 最近完成的 Java 8 支援,然後就可以開始了。挑戰在於下一步:你需要弄清楚如何將你的應用部署到支援 Java 8 的環境中。
當然,在實踐中,這個考量可能來得更早:在你願意或被允許嘗試 Java 8 之前,你需要先有一個支援 Java 8 的部署計劃。在許多情況下,你甚至不會去嘗試,因為你事先就知道目前不可能將 Java 8 引入到你的生產系統中。
不可能?真的嗎?讓我們針對特定的部署環境重新考慮一下...
對於 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" 下崩潰...
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 上執行。
像 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 位元組碼。
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,今年九月將在德克薩斯州達拉斯舉行!