Hibernate 之父:是时候升级到 Java EE 6 了!
Hibernate 之父 Gavin King[1]建議開發(fā)者升級到 Java EE 6 平臺,并指出了一些不愿意升級的觀點其實是沒有根據(jù)的。
?? ? Java EE 6 發(fā)布后,我看到了很多反對升級到新平臺的觀點。這些反對觀點大多是由 Tomcat / Jetty 以及一些開源框架(例如 Hibernate 與 Spring)的使用者提出。
?? ? 當然,選擇非標準、開源技術(shù)有很多好處。另外,在 EE 6 中,你可以使用你感興趣的開源框架,Servlet 3 與 CDI 可以無縫集成第三方框架。因此,沒有理由不使用 EE 6。盡管如此,我還是看到有人說:
升級到 EE 應(yīng)用服務(wù)器很困難
?? ? 這似乎是具體組織的政治問題,而不是實際的技術(shù)問題。當然,升級服務(wù)器(例如 GlassFish 或 JBoss)是非常瑣碎的任務(wù)。(升級第三方框架就更為痛苦了。)一些組織機構(gòu)對服務(wù)器升級有著非常重量級的過程,而對于服務(wù)器內(nèi)運行的框架的升級過程卻 沒有如此重的過程控制。因此,對于開發(fā)團隊來說,升級第三方框架反而更容易一些。
?? ? 我認為開發(fā)更有說服力、更好的過程才是最重要的,而不是放棄 Java EE。將你的應(yīng)用運行在老舊、過時的服務(wù)器平臺上存在很多風險,過程不應(yīng)該鼓勵這樣的實踐。
?? ? 但從實踐角度看,幾乎每一個人都準備最近就升級到 Servlet 3。無論你在使用 Tomcat、Jetty、JBoss、GlassFish、Resin、WebLogic、Oracle 還是 WebSphere,都意味著服務(wù)器的升級。這是一個升級到 EE 6 Web Profile 的絕好機會,黃金時機。
EE 應(yīng)用服務(wù)器太龐大了
?? ? 反對理由是 EE 服務(wù)器包含了很多(當前)使用不到的功能。反對者的論據(jù)通常涉及到了討論 jar 包大小、Servlet 引擎+第三方框架與 EE 應(yīng)用服務(wù)器所占用的磁盤空間大小的比較。其實,這樣的論據(jù)是有問題的:
?? ? 另外,我認為最有說服力的是 Java EE 6 Web Profile 更本不龐大。一旦經(jīng)過認證的 Web Profile 服務(wù)器投放市場,我們就可以在大的 EE 應(yīng)用服務(wù)器與小的 Servlet 容器中間找到一個平衡點。
糟糕的 J2EE 與 EJB2!
?? ? 隨著 JCP 的標準化進程,這個問題其實早已不存在了:
???? 事實上,Java EE 6 Web Profile 已經(jīng)足夠用了。如果你不親自嘗試 Java EE 6,你是不能真正感受到 EE
?6 對開發(fā)的好處的。
應(yīng)用服 務(wù)器可移植性太神秘了!
????? 真的嗎?我們看到很多人將應(yīng)用程序分割后部署于不同的應(yīng)用服務(wù)器上?噢,我看到過,這意味著 100% 完美地進行應(yīng)用程序 0 改變移植,一種柏拉圖式的理想可移植性。我了解對于絕對真理與柏拉圖式理想的弱點,不過還是讓我們先看看例子。
???? 這是一個非常典型的可移植性問題視圖:
- 99% 的代碼,85 % 的外部元數(shù)據(jù)在不同服務(wù)器平臺上完全兼容,剩下 1% 與 15% 能夠適當進行分割
- 40% 的代碼,80% 的外部元數(shù)據(jù)綁定在了非標準、單一廠商的容器體系結(jié)構(gòu)上
????? 當我劃分這些點時,我突然想將本節(jié)主題從 應(yīng)用服務(wù)器可移植性太神秘了 改成 我根本不在乎容器可移植性 。主題改變的想法印 證了服務(wù)器可移植性問題的確存在,并且這對于很多組織機構(gòu)來說非常有用。
?
???? 我一直想看到非 EE 6 技術(shù)維護者對 EE 6 真實的評論。上文中提到的一些論據(jù)不是來自真實世界的,所以很難引發(fā) EE 平臺上應(yīng)用開發(fā)實際技術(shù)問題的討論。JCP 最近一輪規(guī)范似乎已經(jīng)離開了反 EE 陣營(暫時性離開?),但缺乏成功的事實支撐。
編注: [1] Gavin King:Hibernate 的創(chuàng)始人,EJB3 專家委員會成員,JBoss 核心成員之一,Seam 框架的領(lǐng)導人,JSR-299 (CDI ) 規(guī)范領(lǐng)導人,也是《Hibernate in Action》一書的作者。
來源:You should upgrade to Java EE 6
?
編 者簡介:丁亮,CSDN 特約記者,軟件設(shè)計師。網(wǎng)絡(luò)ID:88250,Linux、Open Source 熱愛者,擅長??? ? ? ? ? ? JavaSE / JavaEE 開發(fā),熟悉 JSF、EJB、Spring、Seam、OSGi 等框架應(yīng)用的架構(gòu)與開發(fā),目? 前正在深入學習 OOAD 與敏捷過程。個人博客:簡約設(shè)計の藝術(shù) 。
轉(zhuǎn)載于:https://www.cnblogs.com/lanzhi/archive/2010/01/26/6469113.html
總結(jié)
以上是生活随笔為你收集整理的Hibernate 之父:是时候升级到 Java EE 6 了!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RIPv2 路由手工汇总
- 下一篇: 藏在XP中的一个可以完整清除垃圾文件