明月松間照 清泉石上流


                                                  ——— 兵臨城下   貓科動物
          posts - 70, comments - 137, trackbacks - 0, articles - 23
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          J2EE Development without EJB讀后隨筆

          Posted on 2006-05-16 17:26 兵臨城下 閱讀(1650) 評論(8)  編輯  收藏

          ???  這本書早就買了,放在那一直沒看,最近才看了前五章。
          ???  怎么說呢,總之前五章可以說是把EJB(特別是Entity bean)批的一無是處。說它有損OO的設計原則;EJB容器限制了OO的基本特征,說它只是個數據的收集器,而沒有行為,不能稱之為真正的對象。還有把持久化邏輯和遠程模型都集成到這樣的一個組件中,非常的不合理。EJB不能脫離容器而存在,帶來測試的繁瑣,……
          ????????書中還分析了“ 經典”J2EE架構(petStore)的種種不是,我看下來,意思是:這種分布式的架構在現如今的企業應用中沒有用武之地(至少沒有必要),Web Server和Application Server的分離無異于作繭自縛(額外的遠程調用的開銷)。極力推崇Spring框架中使用POJO對象和Hibernate/JDO持久化機制。
          ???????上述列出的EJB種種缺點(當然書中還有很多),我看了以后認為似乎還是有那么一點道理。我只是個使用者,當初使用EJB特別是Entity bean 確實給我帶來了很多的便利,認為它徹底以組件形式解決了持久化問題,可以不用一句一句的JDBC了。但現在出來這么一本書以毫不客氣的口吻將它批判如此體無完膚,真是讓我有點心寒啊!我難道方向錯了??
          ??????? 我學J2EE已經有兩年多了,不敢說我對EJB有多深的了解。然而讀了這本書的一些說法后,覺得對EJB容器和EJB對象又有了新的認識(譬如EJB容器的申明式事務管理,資源池的管理等等)。不知道EJB是不是像它所說的那樣差,Spring又是這樣這樣的好(我打算去看看),我現在不對這些多做評論,因為這不是我這樣一個資歷的人能夠評論的,而且我對Spring不甚了解。

          ????? 現在開源的東西真是不得了!呵呵!


          評論

          # re: J2EE Development without EJB讀后隨筆  回復  更多評論   

          2006-05-16 20:15 by zkjbeyond
          胡扯

          # re: J2EE Development without EJB讀后隨筆  回復  更多評論   

          2006-05-17 10:19 by netfishx
          就是胡扯

          # re: J2EE Development without EJB讀后隨筆  回復  更多評論   

          2006-05-17 10:21 by 兵臨城下
          J2EE Development without EJB 胡扯?

          # re: J2EE Development without EJB讀后隨筆  回復  更多評論   

          2006-05-17 23:36 by 鳥不生蛋蛋的地方
          這本書后面幾章挺好看

          # re: J2EE Development without EJB讀后隨筆  回復  更多評論   

          2006-05-18 08:54 by 勇敢的心
          他是理論上批判
          你是實際上應用
          根本不是用一個理念, 哪有矛盾嘛

          # re: J2EE Development without EJB讀后隨筆  回復  更多評論   

          2006-05-18 09:13 by netfishx
          書沒胡扯,你胡扯

          # re: J2EE Development without EJB讀后隨筆  回復  更多評論   

          2006-05-18 13:49 by 兵臨城下
          看了各位的評論,有點個人看法:
          1、理論的批判和現實的應用
          如果一個架構在理論上被人批判,那這個人必需得從應用的角度舉出實例來支持他的觀點。如果一個架構理論上都不行,那按照這個理論指導出的實踐又能怎么樣呢!
          如果ROd Johnson只是在理論上對EJB進行了批判,我想那是毫無說服力的。而恰恰相反,他在書中對于同一Application,列舉了四種架構,兩種EJB架構,兩種非EJB架構。從應用的角度(系統的資源開銷、代碼的可測試性、可維護性、組件模型和企業服務的整合(EJB容器)和分離(Spring)),以他的觀點闡述了EJB架構的缺點和他強烈推薦的Sping架構的好處。如果說他只是理論上的批判,我認為不合適。

          2、說我胡扯,我不知道我到底哪里不對了。我所列出的種種EJB的缺點,都是書中詳細描述的(在看了sun最新發布的java EE5.0后,特別是EJB3.0確實對一些缺點做出了改進。可見他的一些批判還是很對的)。我的應用(EJB 讓我體會到的實惠)只是在“經典”的J2EE的這個架構下實施的,不排除我“不識廬山真面目,只緣身在此山中”的原因。我并不是把我在EJB中得到的“快捷便利”,和Rod Johnson的理論批判混為一談。
            
            要說原因,只能說是我沒用過Sping,不知道他的架構是不是略勝一籌。都說不怕不識貨,就怕貨比貨,只有你真正應用、比較才能得出你的真實體會。

          # re: J2EE Development without EJB讀后隨筆  回復  更多評論   

          2006-08-03 10:31 by Ronnie
          其實無所謂ejb的好壞,關鍵是你怎么用他

          3.0以前的entity bean是被人病詬的最多的了,sun的思路是好的,但是也許是實在太重量級了,90%的應用里開發人員完全可以選擇hibernate,toplink這類更加輕巧靈活的持久化方案,而像entity bean提供的例如分布式事務處理之類的強大功能無異于屠龍之技,事實上要涉及到包含在一個事務里的多數據庫操作的應用極少,就算有人家也都在用TUXEDO之類的成熟中間件技術。于是SUN吸取了教訓,3.0的persistences 直接就實施于hibernate一系列持久化方案之上,至少我還覺得不錯。

          至于session bean,我倒現在也沒看出來有太大的不好,Web Server和Application Server的分離在確實需要分布式計算的環境里有什么問題?
          當然你的server端只是用來處理一些類如圖書信息存儲的簡單工作,自然是沒必要,但是如果你的server端跑著一個計算量極大的應用呢?

          EJB是一個為組件化分布式計算而生的技術,和Spring為首的開源框架的目的是有差別的。站在一個用戶的角度,你說哪個好,哪個差,不過是你自己的項目究竟適用哪種技術罷了。就好像你一個非常簡單的web應用,你非要在server端的數據庫調用的時候用web service,然后發現奇慢無比,然后罵web service是垃圾。web service說我怨啊....

          當然我們也應該看到ejb也是不斷發展和進步的,就好像ejb3.0里面,不也開始大量使用Spring引以為榮的依賴注入了么,同樣我們也能看到AOP的身影在閃耀。

          說到底,技術不過是用來解決問題的,純粹為了技術而技術是李宇春的。



          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 高台县| 望奎县| 东方市| 张家界市| 伊金霍洛旗| 河西区| 宁城县| 搜索| 富蕴县| 霸州市| 广西| 安塞县| 天全县| 怀化市| 光泽县| 琼中| 福贡县| 黄浦区| 马边| 淮北市| 甘洛县| 花莲县| 全椒县| 防城港市| 东山县| 焦作市| 迭部县| 广灵县| 徐汇区| 沂水县| 铜梁县| 石渠县| 清原| 伊宁市| 前郭尔| 加查县| 安多县| 洪雅县| 水富县| 彝良县| 上饶县|