Java EE 6 VS Spring 3:Java EE已经杀死了Spring? 没门!
幾天前,我在聽Java Spotlight Podcast的插曲85 。 在這次演講中, Bert Ertman和Paul Bakker討論了從Spring遷移到Java EE。 基本上,在他們的介紹中,他們說,如今,選擇Spring而不是Java EE是沒有意義的。 我們可以在他們的文章中閱讀:
花費了一段時間,但Java EE終于邁出了一步,成為了一種標(biāo)準(zhǔn),輕量級,合適的解決方案,以應(yīng)對主流企業(yè)應(yīng)用程序空間中的絕大多數(shù)實際開發(fā)挑戰(zhàn)。 除了選擇標(biāo)準(zhǔn)外,您沒有任何其他理由。
在過去的幾個月中,我看到了很多想法相似的博客文章。 有些人贊揚Java EE,這是一件好事,而另一些人則只是貶低Spring。 Arun Gupta 的文章就是這種情況。 我對本文的第一個想法是“ Oracle可能真的很想寫這樣的巨魔……”。
我根本不是Spring傳播者,也不是Java EE討厭者。 相反,我已經(jīng)大量使用Java EE 5兩年了,很高興看到Java EE最終成為Spring的優(yōu)秀競爭對手。 我的目標(biāo)不是在這里贊美Spring,而只是為了平衡“ Spring的仇恨者”的用語。
標(biāo)準(zhǔn)VS單一供應(yīng)商解決方案
有標(biāo)準(zhǔn)好嗎?
您是否知道這句話“響應(yīng)按照計劃進行的轉(zhuǎn)換”? 是的,這是敏捷規(guī)則之一。 有標(biāo)準(zhǔn)當(dāng)然是好事,有多有余,是根本! 但是它有缺點。 如果有一天您對標(biāo)準(zhǔn)有疑問,而標(biāo)準(zhǔn)卻沒有涵蓋,那么您唯一的解決方案就是解決問題,動動手指,等待3年……
Spring和標(biāo)準(zhǔn)不兼容嗎?
一點也不! 這就是我不理解“這是標(biāo)準(zhǔn)”論點的原因之一。 Spring盡其所能提供標(biāo)準(zhǔn)的使用。 您可以自由使用JPA,CDI注釋等。我認(rèn)為Spring更像是一個集成平臺,可以讓您使用所有Java EE技術(shù)以及Spring本身提供的一些其他功能。
我依賴SpringSource嗎? 并不是的…
如果明天SpringSource停止開發(fā)Spring,會發(fā)生什么? 我將繼續(xù)使用它……Spring Framework已獲得Apache 2.0許可,毫無疑問,社區(qū)將接替人們,并且一些新公司將為Spring提供支持。 即使沒有人這樣做,我也對Spring Framework的當(dāng)前狀態(tài)感到滿意,為什么還要更改? 也許我會在3年后重新考慮它,屆時將發(fā)布新版本的Java EE…
如果明天我對Spring框架不滿意怎么辦? 如果我對Java EE不滿意,那將是一回事……我不再使用它了……
如果明天我對應(yīng)用程序服務(wù)器不滿意怎么辦? 如果我對Java EE不滿意,那是同樣的事情……我改變了……除了使用Spring,我將有更多選擇(因為Spring適用于所有Java EE應(yīng)用程序服務(wù)器以及其他諸如tomcat,jetty等服務(wù)器)。
春天一直是創(chuàng)新的,并將永遠是
我永遠不會忘記,Spring使Java Web開發(fā)的CDI變得容易和容易。 Java EE緊隨其后(三年后…)發(fā)布了JSR-299 。
Spring當(dāng)前還提供了一些JavaEE根本無法提供的出色解決方案:
- Spring Data(對NoSQL世界特別好)
- Spring Social(糟糕…… JSR-357最近被拒絕…)
- Spring手機
- …
其中一些計劃在Java EE的下一版本的計劃中(是的,我們將在3年后推出!),而另一些仍未被考慮或被拒絕。
整合測試
Java的常見論點之一是,您不必使用模擬程序,由于Arquillian ,您可以進行容器內(nèi)測試。 我絕對支持容器內(nèi)測試,而不是模擬測試,并且Arquillian是一個很棒的工具。 無論如何,Arquillian非常適合Java EE,但不是Java EE! 沒有標(biāo)準(zhǔn),因此您只能依靠單一供應(yīng)商JBoss(redhat),這使得“這是標(biāo)準(zhǔn)”的論點毫無意義。 然后, 用Arquillian測試spring是不是不可能的……至少,即使它不是完美的,Spring的優(yōu)點還是可以自己提供一些東西……
結(jié)論
我沒有將我的文章集中在Java EE平臺提供的增強上,也沒有集中在每種實現(xiàn)的不同功能上,這不是我的目標(biāo)。 我仍然相信Java EE是一個非常好的產(chǎn)品,并且它最終已經(jīng)成為一個重要的競爭對手。 但是當(dāng)我讀到“ Spring在當(dāng)時是革命性的……時,它的確是上一代的框架,甚至有人稱其為舊版 ”確實使我感到惱火。 我們怎么說呢? 也許只是發(fā)出嗡嗡聲……而且有效!
參考: Java EE 6 VS Spring 3:Java EE已經(jīng)殺死了Spring? 沒門! 從我們的JCG合作伙伴 Tibo Delor在InvalidCodeException博客中獲得。
翻譯自: https://www.javacodegeeks.com/2012/07/java-ee-6-vs-spring-3-java-ee-has.html
總結(jié)
以上是生活随笔為你收集整理的Java EE 6 VS Spring 3:Java EE已经杀死了Spring? 没门!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JSF基于事件的交流:新派方法
- 下一篇: Java泛型面试问题