領先一步
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" 下出現問題……
JBoss AS 7 的繼任者 WildFly 8,實際上是第一個對 JDK 8 提供基本相容性的 EE 伺服器。其開源版本已經普遍可用。然而,Red Hat 方面尚未為其提供正式支援,例如基於 WildFly 8 的 JBoss EAP 版本。
至於 GlassFish 4,Oracle 去年已停止商業支援,自那時以來未釋出維護版本,也沒有可用的官方支援合同。儘管如此,今年晚些時候的 GlassFish 4.0.1 版本可能會提供基本的 JDK 8 支援。
更新(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 方面正在盡最大努力支援 Tomcat 在 JDK 8 上的執行,透過我們對 Apache Tomcat 的參與以及透過我們的 tc Server 產品。
當然,您通常不會使用純粹的 Tomcat 或 Jetty,而是會在您的部署單元中新增特定的框架和庫。顯然,這些庫中的每一個也需要與 Java 8 相容。其中許多自然是相容的,但請仔細檢查您的持久化提供商和繫結框架,因為它們可能尚未支援 Java 8 位元組碼。
Spring Framework 4 代從一開始就設計為與 Java 8 相容。事實上,在第一個 OpenJDK 8 Release Candidate 釋出之前,我們就釋出了 Spring Framework 4.0 GA,並提供了全面的 Java 8 開發支援。
從我們的角度來看,Spring Framework 4 在 Java 8 上是一個很好的組合,適用於許多環境,不僅與 Tomcat、Jetty 或 WildFly 配合,還與 Reactor 或 Undertow 等近期嵌入式引擎以及其他自定義應用程式架構配合。
現在是嘗試這種基於 Spring 的 Java 8 方案的最佳時機,因為 JDK 8 已經正式釋出!您會驚訝於它能帶您走多遠。結合 IntelliJ IDEA 或 Eclipse 中最近的 Java 8 相容工具,您可能會發現您所需的一切就在那裡,就在此刻。
所以,請不要等到 2016 年才嘗試 Java 8……
我誠摯邀請您參加我下週關於 Spring Framework 4 on Java 8 的網路研討會,會議將涵蓋關鍵功能主題,重點關注 Java 8 特性在基於 Spring 的應用程式中的使用:https://springframework.tw/blog/2014/02/11/webinar-spring-framework-4-0-on-java-8-march-25
今年,您還會在多個會議上看到我關於 Spring on Java 8 的演講,例如在 Berlin Expert Days、JAX Germany、QCon New York、GOTO Amsterdam、ÜberConf Europe,當然還有我們自己的 SpringOne(今年九月在德克薩斯州達拉斯舉辦)!