領先一步
VMware 提供培訓和認證,以加速您的進度。
了解更多請注意,還有一篇關於 Spring 5 系統需求的後續部落格文章。 如果您主要對 Spring 5 的規劃過程感興趣,建議從那裡開始。
在我們追求 Java EE 整合的過程中,我們正積極地擁抱最新一代的規範,例如 JPA、Bean Validation 以及 Servlet 和 JMS API。 從 Spring 4 開始,我們並排支援 Java EE 6 和 7 等級的規範。 我們希望很快將其提升到 EE 7+ 等級(JPA 2.1、Bean Validation 1.1,尤其是 Servlet 3.1 和 JMS 2.0),但正面臨一個根本問題:缺乏對 EE 7 平台的採用。
Java EE 7 平台已於 2013 年 5 月發布,至今已有兩年。 令人驚訝的是,它幾乎還未在生產環境中發現。 但這其實並不那麼令人驚訝:雖然 在此期間,一些專案已通過 EE 7 的認證,但主要供應商的缺乏顯而易見:目前還沒有主要的 EE 7 伺服器提供生產支援,無論是 Web Profile 還是完整平台。 截至 2015 年 6 月,常見的 EE 供應商仍在銷售基於 2009 年代 Java EE 6 API 的伺服器授權。 而且不僅僅是傳統的嫌疑犯。
熱門新聞(6 月 9 日): WAS 8.5.5 的 EE 7 修補程式將於 6 月 26 日全面上市。 讚賞 IBM!
雖然 EE 7 保護傘中的幾個規範已經看到了個別的採用,例如通過 Hibernate 4.3 的 JPA 2.1 和通過 Tomcat 8 和 Jetty 9 的 Servlet 3.1 / JSR-356 WebSockets,但可以公平地說,Java EE 7 作為一個整體平台未能進入市場。 畢竟,“平台”的意義在於廣泛的主流可用性。 具有諷刺意味的是,稍後發布的 JDK 8(2014 年 3 月)在生產環境中得到了相當快的採用,即使在 EE 領域也是如此! 因此,截至 2015 年年中,最先進的技術是:在生產環境中運行的基於 JDK 8 的供應商支援的 Java EE 6 伺服器...
我們的結論: 鑑於 Spring 4 和 Java 8 的採用程度,我們將在 Spring Framework 5 世代中將最低要求提升到 JDK 8+。 但是,由於缺乏 Java EE 7 平台的採用,我們將不得不保留與當前一代應用程式伺服器的相容性:允許將即將推出的 Spring 5 應用程式部署到生產環境中常見的基於 JDK 8 的 EE 6 伺服器 - 就像我們已經使用 Spring 4 做了的那樣,但至少可以額外受益,即為我們的框架代碼庫及其所有核心介面採用 JDK 8+。
附註 (6 月 6 日)
順便說一句,我真的很欣賞 GlassFish 和 WildFly 作為開源工程的努力。 Spring 為兩者都提供了專用的支援,而 Undertow HTTP 伺服器(在 WildFly 保護傘下)非常適合使用 Spring Boot 進行嵌入式部署。 這並沒有改變這樣一個事實,即專案所有者(分別是 Oracle 和 Red Hat)避免支援它們,而是選擇投資於 WebLogic 12 和 JBoss EAP 6 以用於生產目的。 來自 Payara 等公司(針對 GlassFish)的外部支援只能在一定程度上緩解這種情況,Java EE 市場的很大一部分都受限於供應商的生產產品 - 所有基於 EE 6 的產品 - 在 2015 年。
有關開源專案本身提供的精良生產支援的範例,請參閱 Tomcat。 Tomcat 專案在快速修復錯誤,特別是安全漏洞方面,即使在伺服器的過去三個主要世代中,也擁有令人欽佩的記錄。 因此,我並不是在爭論商業支援本身,而是在爭論像 Tomcat 那樣(我敢說:像 Spring 那樣)進行適當的維護版本,無論是來自開源專案本身還是來自商業支援訂閱。 例如,WildFly 沒有這兩者; GlassFish 沒有 Oracle 的支援,但至少可以通過 Payara 獲得支援選項。