追隨Java
          簡(jiǎn)單的事情重復(fù)做,就會(huì)產(chǎn)生累積效應(yīng)!
          posts - 260,  comments - 338,  trackbacks - 0
          ?????????????????????? 選擇 Spring+Hibernate EJB3還是POJO + JDBC呢?
          ?? ?剛開始做項(xiàng)目的時(shí)候我們什么都沒(méi)有,沒(méi)有JAVA,沒(méi)有數(shù)據(jù)。用戶的數(shù)據(jù)存放到那呢?慢慢的,就出來(lái)了關(guān)系數(shù)據(jù)庫(kù),SQL也就誕生了。有人 說(shuō):“讓JAVA訪問(wèn)數(shù)據(jù)庫(kù),JDBC誕生了。"有一些人說(shuō)JDBC是好的,但也有人說(shuō)JDBC是不好的,所以容器管理EJB出現(xiàn)了。有人說(shuō),J2EE容 器不好,POJO又復(fù)興了。實(shí)體BEAN的性能不怎么好,比較慢并且很重;Hibernate出現(xiàn)了,人們可以忘記SQL了,因?yàn)樗惶先藗兊牧?xí)慣。 有人說(shuō),J2EE是不好的,他從J2EE中分出一個(gè)Spring的框架。有一半的人說(shuō)沒(méi)有什么事情是好的,他們創(chuàng)建了很多的JAVA框架。一個(gè)對(duì)java 不是很熟悉的人說(shuō):”我不舒服很疲憊,那么多的東西要選擇,我將回到JAVA EE中。”
          ?? ?一些企業(yè)級(jí)的JAVA商店是使用J2EE應(yīng)用服務(wù)器和EJB2.X創(chuàng)建的,它們的結(jié)合建立他們的應(yīng)用是過(guò)度了些(殺雞用牛刀),覺(jué)得去選擇另 外的一些框架。Spring框架和Hibernate框架的結(jié)合似乎是j2ee的一個(gè)合理的選擇,但是他們的組合是jee一個(gè)輕量級(jí)的架構(gòu),尤其當(dāng)非常簡(jiǎn) 單的EJB3.0是可以使用的。
          ?? ?依我的觀點(diǎn)來(lái)看,不僅Spring/Hibernate的組合,或者它們單獨(dú)使用都是非常好的框架。可以重復(fù)使用它們的組件,非常輕便的。
          ?? ?Spring框架是一些組件的集合它們能夠單獨(dú)的使用,而且你也可以一起使用它們通過(guò)添加X(jué)ML文件。如果你就這樣做那么你就會(huì)要使用很多的XML。如果你單獨(dú)的使用Spring框架的任意組件,它都是輕便的。
          But since it takes two to tango,it's as if you're pulling a tiny roll of thin wire out of your pocket (a.k.a. XML),which becomes heavyweight because wires tend to twist and create a mess.(那位幫我完成?謝謝!)
          ?? ?關(guān)于Hibernate,我不能夠肯定為什么那么多的人把它當(dāng)做首選。我明白一個(gè)企業(yè)架構(gòu)將使用它,投資一個(gè)新的設(shè)計(jì)在許多的商業(yè)應(yīng)用,迫使 更多的企業(yè)把它作為標(biāo)準(zhǔn)去實(shí)現(xiàn)數(shù)據(jù)持久化。如果你是開發(fā)一個(gè)典型的CRUD的應(yīng)用,尤其當(dāng)你已經(jīng)在使用它而且數(shù)據(jù)庫(kù)沒(méi)有完全設(shè)計(jì)出來(lái),為什么更加為 HIBERNATE而擔(dān)心呢?SQL是你受驚嚇了?
          ?? ?Take an application built on Spring components interconnected with thin wires, put Hibernate on top of itwith wires of a different diameter, and the maintainability of your application will decrease while hard- to-find bugs make themselves at home in your application.(那位幫我完成?謝謝!)

          ???? 最近的3,4年,許多的人對(duì)EJB是憤怒的,把它作為一個(gè)多余的有著許多繁瑣的XML描敘文件的復(fù)雜框架。現(xiàn)在EJB3.0,使用注釋,視圖在一次的去吸 引企業(yè)級(jí)開發(fā)員。這不是那么容易的,EJB給他們是一個(gè)不好的映像。當(dāng)你用Spring/Hibernate取代EJB時(shí),你不要欺騙你自己,它沒(méi)有使你 的開發(fā)容易許多。

          ?? ?我相信在單獨(dú)的POJO的環(huán)境中他們沒(méi)有什么不了解的,知道怎樣去執(zhí)行特定的功能(例如,發(fā)送消息,事務(wù)管理,基于提供的SQL創(chuàng)建好的報(bào) 表,一些財(cái)經(jīng)領(lǐng)域的過(guò)程【model some financial process】,查找最好的線路,等等)。僅僅傳遞一些必須的參數(shù)到一個(gè)黑合中,返回結(jié)果,無(wú)論你想要什么。Ioc和依賴注入不是新鮮的事情,它工作的 非常好。十多年以來(lái),我一直使用它(不知道它將來(lái)的名字)在PB的應(yīng)用中。它出現(xiàn)在事件驅(qū)動(dòng)程序中。我是創(chuàng)建用戶對(duì)象關(guān)于用戶事件。無(wú)論誰(shuí)想傳遞一些信息 到這個(gè)對(duì)象將激活一個(gè)用戶事件,這個(gè)事件將攜帶數(shù)據(jù)注入到正確的對(duì)象中。look,ma!,no, wires!,今天,我同樣的在ActionScript3中使用。停止配置(stop wiring),僅僅寫一些代碼業(yè)務(wù)應(yīng)用的需要,一個(gè)新的應(yīng)用忘記那些配置。不要忘記那些可以再度使用的組件。
          ?? ?今天,Spring也許是JAVA中最好的框架之一。它有一個(gè)缺點(diǎn),那就是它是一個(gè)框架(可能說(shuō)它不是一個(gè)標(biāo)準(zhǔn)吧)
          ?? ?Hibernate提供一個(gè)緩沖對(duì)象。好的,讓我們使用它,整個(gè)工作都不需要安裝什么。在某處獲取一個(gè)緩沖組件,準(zhǔn)備你的行動(dòng),傳遞所有需要 的參數(shù)構(gòu)造你的對(duì)象。Stop wiring(停止配置),返回到程序。。聯(lián)合SQL,JDBC,緩沖(如果有必要)的知識(shí),和一個(gè)分頁(yè)組件(如果
          有必要)它能取得更多。
          ?? ?在我新介紹的一些JAVA程序員,我問(wèn)他一個(gè)問(wèn)題:“誰(shuí)知道怎樣從數(shù)據(jù)庫(kù)表中刪除重復(fù)的數(shù)據(jù)”。沒(méi)有一個(gè)人知道。當(dāng)我問(wèn)題同樣的問(wèn)題在論壇 上,一些JAVA程序員很自信的回復(fù)這是關(guān)于HIBERANTE,首先你不能重復(fù)的創(chuàng)建。非常的謝謝。關(guān)于一些現(xiàn)實(shí)的經(jīng)驗(yàn)。如果數(shù)據(jù)庫(kù)表臟的數(shù)據(jù)已經(jīng)存 在,并且弄臟每天都在發(fā)生。你不要欺騙自己了,學(xué)習(xí)SQL吧。

          ?? ?如果你想寫一個(gè)簡(jiǎn)單的應(yīng)用,不要尋找一些輕量的第三,第四方的框架開始。你的業(yè)務(wù)邏輯在POJO中,你的數(shù)據(jù)訪問(wèn)在DAO中。保持它是簡(jiǎn)單的。需要事務(wù)嗎?找一個(gè)事務(wù)管理。需要可是升級(jí)嗎?考慮使用異步消息在兩個(gè)組件之間。
          ?? ?
          ?? ? Floyd Marinescu 在它的《開始EJB3》的緒言中說(shuō)到。EJB3是一個(gè)非常重要的里程碑為規(guī)范。它不僅意味著容易使用,而且它是首先(在作者看來(lái))這個(gè)規(guī)范創(chuàng)建,開發(fā)群體 的證明他們所需要的,使EJB3是最佳實(shí)踐的標(biāo)準(zhǔn)話,取代原來(lái)的委員會(huì)所定制的。

          ?? ?他是偉大的,來(lái)自一些誹謗的社團(tuán)的壞家伙最終他們充滿著快樂(lè),他們實(shí)際上是專家,具有最佳的實(shí)踐和許多開源框架的思想。
          ?? ?有人說(shuō),回到JEE的標(biāo)準(zhǔn),他創(chuàng)建一個(gè)JAVA EE1.5并且非常好。它不是最好的,但是給人們一個(gè)共同點(diǎn),孕育了一個(gè)新的企業(yè)級(jí)應(yīng)用。

          BTW:原文來(lái)自(http://java.sys-con.com/read/299903.htm),翻譯的巨爛,希望能拍磚,指出錯(cuò)誤。我也是嘗試著翻譯一些文章,希望能夠提供自己的閱讀能力。

          posted on 2006-11-17 16:53 Harryson 閱讀(1883) 評(píng)論(3)  編輯  收藏 所屬分類: SoftwareEngineering

          FeedBack:
          # re: [翻譯]選擇 Spring+Hibernate EJB3還是POJO + JDBC呢?
          2007-02-21 01:17 | sunflower
          剛出來(lái)混,個(gè)人覺(jué)得使用Spring里的類越多(比如HibernateTemplate),對(duì)Spring的依賴越大,越難脫離Spring.^-^.
          不過(guò),Spring的確給我們很方便的實(shí)現(xiàn).  回復(fù)  更多評(píng)論
            
          # re: [翻譯]選擇 Spring+Hibernate EJB3還是POJO + JDBC呢?
          2007-02-21 01:19 | sunflower
          感覺(jué)把Spring當(dāng)成一個(gè)公用包來(lái)用會(huì)好點(diǎn)。  回復(fù)  更多評(píng)論
            
          # re: [翻譯]選擇 Spring+Hibernate EJB3還是POJO + JDBC呢?
          2007-10-12 13:03 | qq:445104284
          我今天做過(guò)測(cè)試,已經(jīng)找到答案:
          myql里面的一個(gè)表有記錄10萬(wàn),從里面找出一條記錄:
          spring2.0+hibernate3.2(Spring設(shè)置了c3p0緩沖池---提高性能,并且使用聲明事務(wù))用的時(shí)間大約是4000ms,
          ejb3.0用的時(shí)間大約是600ms.
          你們說(shuō),spring還是ejb3.0呢?  回復(fù)  更多評(píng)論
            

          <2006年11月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          常用鏈接

          留言簿(10)

          隨筆分類(319)

          AJAX

          Coffee House

          CSS

          Java

          JavaScript

          Open Source

          ProjectManagement

          友情Blog

          最新隨筆

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 凤台县| 贺州市| 邻水| 邵东县| 呼伦贝尔市| 沧州市| 灌云县| 蚌埠市| 大同市| 镇安县| 安新县| 习水县| 武平县| 罗城| 峨眉山市| 青冈县| 贵南县| 交城县| 衡阳县| 论坛| 灵石县| 当阳市| 仁化县| 彝良县| 建瓯市| 云霄县| 宣城市| 丰顺县| 新野县| 昭觉县| 万源市| 攀枝花市| 墨竹工卡县| 和龙市| 闸北区| 沙湾县| 平利县| 万年县| 凌源市| 祁连县| 梧州市|