<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Spring2.0和EJB3.0隨談

    Spring自從2003年發(fā)布以來(lái),一直是Java開(kāi)源框架的奇跡之一。從2000年開(kāi)始,伴隨著B(niǎo)/S架構(gòu)逐漸引入企業(yè)應(yīng)用軟件開(kāi)發(fā)的領(lǐng)域,Java就逐漸成為企業(yè)應(yīng)用開(kāi)發(fā)的主流技術(shù),一直到2003年,Struts+EJB一直是Java技術(shù)架構(gòu)的不二選擇,然而這一切隨著2003年Spring以without EJB的面目出現(xiàn)之后,一切都開(kāi)始改變。

    大概從2003年下半年開(kāi)始,Spring+Hibernate就開(kāi)始甚囂塵上,似乎那時(shí)候的Spring和Hibernate尚且不足以動(dòng)搖J2EE規(guī)范以EJB為核心的領(lǐng)袖地位。但是2004年5月份,吸收了Spring/Hibernate框架優(yōu)點(diǎn)的EJB3 JCP委員會(huì)的成立,事實(shí)上宣判了Spring對(duì)EJB2的終結(jié),EJB3則更像是Vendor們的一種自救行為。

    2004年到2006這三年時(shí)間以來(lái),Spring取得了相當(dāng)輝煌的成就,不但將EJB2趕進(jìn)歷史,而且牢牢確立了Spring作為Java企業(yè)應(yīng)用開(kāi)發(fā)的主流地位。而今,甚至對(duì)技術(shù)比較保守的金融電信行業(yè),也開(kāi)始言必稱(chēng)Spring,Spring已經(jīng)成為Java框架的事實(shí)標(biāo)準(zhǔn)。

    在2004年5月份之后,Hibernate Team開(kāi)始和Spring公然決裂,這個(gè)事情放在兩年多以后的今天來(lái)看,原因是昭然若揭的,背靠JBoss的Hibernate Team已經(jīng)成為EJB3規(guī)范的一部分,而JBoss希望力推的以EJB3為核心的Java架構(gòu)來(lái)成為未來(lái)的企業(yè)應(yīng)用主流標(biāo)準(zhǔn),這種情況演變至今,變成了Springframework和JBoss Seam的兩種不同技術(shù)架構(gòu)的競(jìng)爭(zhēng)關(guān)系。

    2004年5月份,EJB3規(guī)范的起步,對(duì)Spring未來(lái)其實(shí)有很大的威脅,但是EJB3規(guī)范歷經(jīng)兩年時(shí)間的難產(chǎn),終于在2006年5月正式發(fā)布之時(shí),已經(jīng)為時(shí)過(guò)晚了,抬眼望去,已盡是spring的天下。

    有意思的是,大致展望一下未來(lái),Java的企業(yè)應(yīng)用開(kāi)發(fā)還能遵循Sun和JCP制訂的Java EE規(guī)范的道路走下去嗎?如果不是這樣,那么未來(lái)道路是什么呢?

    觀察一下Java社區(qū)幾股大的勢(shì)力,會(huì)發(fā)現(xiàn)一些有意思的現(xiàn)象:

    IBM和BEA是Java社區(qū)的領(lǐng)導(dǎo)者,從2004年開(kāi)始,IBM和BEA開(kāi)始大肆宣傳SOA,將他們的目光從應(yīng)用服務(wù)器領(lǐng)域挪到了松藕合企業(yè)服務(wù)領(lǐng)域,開(kāi)展SOA商業(yè)戰(zhàn)略。與此同時(shí),EJB3專(zhuān)家委員會(huì)的領(lǐng)導(dǎo)者也悄然變成了JBoss和Oracle,是IBM和BEA無(wú)力爭(zhēng)取嗎?當(dāng)然不是。IBM和BEA已經(jīng)看到了應(yīng)用服務(wù)器市場(chǎng)和底層框架平臺(tái)即將被開(kāi)源占領(lǐng),商業(yè)價(jià)值萎縮,因而審時(shí)度勢(shì)進(jìn)行戰(zhàn)略轉(zhuǎn)型。一方面押寶SOA戰(zhàn)略,大肆炒熱和培育SOA市場(chǎng),另一方面也積極占領(lǐng)開(kāi)源市場(chǎng),IBM放出來(lái)WebSphere社區(qū)版本-Apache Geronimo,BEA干脆和Spring的咨詢(xún)公司interface21合作,提供spring框架在WebLogic上的商業(yè)技術(shù)支持,如今EJB3對(duì)于他們來(lái)說(shuō)已經(jīng)形同雞肋,就拋給別人嚼吧。

    將EJB3當(dāng)塊寶的自然是應(yīng)用服務(wù)器市場(chǎng)的跟隨者JBoss和Oracle,一方面憑借ORM的先天優(yōu)勢(shì),另一方面有出頭機(jī)會(huì)也不能放過(guò),EJB3委員會(huì)幾乎成了JBoss和Oracle的天下。特別是JBoss,更加積極推出JBoss Seam框架,希望確立以JSF+EJB3的架構(gòu)樹(shù)立Java開(kāi)發(fā)的標(biāo)準(zhǔn),用以取代Struts/Spring/Hibernate的流行組合,因而開(kāi)啟了EJB3和Spring 正面交鋒的戰(zhàn)爭(zhēng)。

    Java Vendor中另外一股勢(shì)力Sun公司這兩年則一直自顧不暇,在應(yīng)用服務(wù)器領(lǐng)域幾乎退出市場(chǎng),直到最近才搞出來(lái)一個(gè)Glassfish,在開(kāi)發(fā)框架領(lǐng)域也一直毫無(wú)建樹(shù),推出的JSF至今還很不成熟,難擔(dān)大任,也許Sun都去忙著開(kāi)源Solaris和JVM源代碼了。

    幾個(gè)大的Vendor或戰(zhàn)略轉(zhuǎn)型,或自顧不暇,或忙于收購(gòu)(Oracle),Java開(kāi)發(fā)領(lǐng)域的主戰(zhàn)場(chǎng)被打掃一空,對(duì)決的雙方換成了Spring和JBoss。對(duì)決的武器則是spring vs Seam。

    Spring代表了不遵循通用標(biāo)準(zhǔn),自己制訂游戲規(guī)則,不依賴(lài)容器的一方;JBoss代表了遵循通用標(biāo)準(zhǔn),但是鎖定容器的一方。這場(chǎng)對(duì)決從2004年5月就開(kāi)始上演,未來(lái)很長(zhǎng)時(shí)間也會(huì)繼續(xù)下去。不過(guò)Spring已經(jīng)站在優(yōu)勢(shì)很大的地位上了。

    大致對(duì)比一下兩者:Spring vs EJB3,就會(huì)發(fā)現(xiàn)Spring從功能上面已經(jīng)勝出很多了:

    1、IoC容器spring勝出

    Spring的IoC容器很強(qiáng)大,其bean管理功能超過(guò)了目前EJB3容器,配置方面Spring稍微復(fù)雜一些。不過(guò)對(duì)于全局性配置來(lái)說(shuō),XML要優(yōu)于EJB3的annotation。

    2、AOP能力Spring勝出

    EJB3目前提供的AOP功能非常簡(jiǎn)單,本來(lái)已經(jīng)無(wú)法和Spring相比,至于集成AspectJ的Spring2.0,就更加望塵莫及了。

    3、事務(wù)管理方面EJB3稍微領(lǐng)先

    Spring提供了很棒的本地事務(wù)模型,也可以集成JTA,但是不支持分布式事務(wù),當(dāng)然這種場(chǎng)景也非常罕見(jiàn)。

    4、Web框架spring勝出

    EJB3標(biāo)準(zhǔn)集成JSF,但是JSF并不成熟,和AJAX配合度也不好。Spring可以靈活集成各種Web框架和模板語(yǔ)言,自身也提供了相當(dāng)強(qiáng)大的MVC框架,要是這還覺(jué)得不夠,那么spring webflow,portlet support都拿出來(lái)。

    5、遠(yuǎn)程訪問(wèn)支持,大致持平

    EJB3繼承了傳統(tǒng)的EJB遠(yuǎn)程訪問(wèn)能力,Web Services支持也不錯(cuò);不過(guò)Spring提供了更多更靈活的選擇,Java RPC,HTTP Invoker,Hessian/Burlap,WebServices。

    6、框架集成能力,spring勝出

    這是spring的傳統(tǒng)優(yōu)勢(shì)項(xiàng)目,只要看看spring modules項(xiàng)目,看看n多第三方spring支持,就會(huì)發(fā)現(xiàn)spring現(xiàn)在的群眾基礎(chǔ)多么好,集成工作流,spring modules已經(jīng)提供了方便的模板類(lèi),集成規(guī)則引擎,Cache,CMS,腳本語(yǔ)言,異步任務(wù),安全驗(yàn)證框架。。。。。。EJB3有點(diǎn)望塵莫及的味道

    7、JMS,JMX,JCA等,EJB3領(lǐng)先一步

    這些傳統(tǒng)EJB優(yōu)勢(shì)項(xiàng)目往往應(yīng)用的不太多,EJB3仍然是領(lǐng)先的。不過(guò)令人側(cè)目的是,Spring最近幾個(gè)版本在連續(xù)追趕EJB這些傳統(tǒng)優(yōu)勢(shì)領(lǐng)域,到Spring2.0為止,其JMS,JMX,JCA支持已經(jīng)相當(dāng)不錯(cuò)了,可以說(shuō)傳統(tǒng)EJB能夠做的,現(xiàn)在Spring也可以做得到。

    這幾年除了Spring框架自身不斷完善和延伸到傳統(tǒng)應(yīng)用領(lǐng)域,圍繞在Spring周?chē)牡谌娇蚣芤彩窃絹?lái)越豐富,EJB3在annotation方面有些獨(dú)到的優(yōu)勢(shì),在一些傳統(tǒng)領(lǐng)域,還領(lǐng)先spring,但是總體來(lái)說(shuō),EJB3為核心的J2EE5.0規(guī)范很難和Spring現(xiàn)在的2.0相匹敵,更何況Java的主力Vendor早已醉翁之意不在這里了,單憑JBoss的Seam,難以戰(zhàn)勝spring。

    目前JBoss已經(jīng)開(kāi)始在國(guó)內(nèi)進(jìn)行商業(yè)上的推廣,也希望以其EJB3技術(shù)來(lái)和Springframework相抗衡,JBoss目前用來(lái)說(shuō)服客戶使用EJB3的理由主要有兩點(diǎn):

    1、EJB3是一個(gè)標(biāo)準(zhǔn),由多個(gè)廠商提供實(shí)現(xiàn)
    2、JBoss的EJB3由Red Hat公司及其合作伙伴提供技術(shù)支持,而springfrmework在國(guó)內(nèi)還沒(méi)有商業(yè)技術(shù)支持

    ?

    posted on 2007-03-09 01:46 金家寶 閱讀(248) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): J2EE概念理論性文摘

    主站蜘蛛池模板: 久久夜色精品国产嚕嚕亚洲av| 亚洲成人精品久久| 久久免费观看视频| 97se亚洲综合在线| 国产美女无遮挡免费视频网站| 国产免费久久精品99久久| 666精品国产精品亚洲| 日本免费人成视频播放| 日韩电影免费在线观看网站| 亚洲午夜成人精品无码色欲| 亚洲综合熟女久久久30p| 国产人成免费视频网站| 成人免费网站视频www| 91午夜精品亚洲一区二区三区| 亚洲国产综合人成综合网站| 免费观看无遮挡www的视频| 免费的黄色网页在线免费观看| 亚洲视频在线观看网站| 亚洲国产成人久久综合碰| 免费观看无遮挡www的小视频| 一级毛片免费一级直接观看| 亚洲va成无码人在线观看| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 亚洲色偷精品一区二区三区| 亚洲欧洲美洲无码精品VA| 成**人免费一级毛片| 免费a级毛片无码a∨免费软件| 亚洲欧美日韩综合久久久| 久久精品国产亚洲AV麻豆~| 国产jizzjizz视频免费看| 最近2019中文字幕免费大全5| 日日摸夜夜添夜夜免费视频| 亚洲一区免费在线观看| 久久久久亚洲av无码专区蜜芽 | 亚洲视频中文字幕在线| 亚洲免费一区二区| 国产婷婷高清在线观看免费| av免费不卡国产观看| 99久久久国产精品免费牛牛四川 | 美女被吸屁股免费网站| 国产成人精品日本亚洲专一区|