??????????????????????
選擇 Spring+Hibernate EJB3還是POJO + JDBC呢?
??
?剛開始做項目的時候我們什么都沒有,沒有JAVA,沒有數據。用戶的數據存放到那呢?慢慢的,就出來了關系數據庫,SQL也就誕生了。有人
說:“讓JAVA訪問數據庫,JDBC誕生了。"有一些人說JDBC是好的,但也有人說JDBC是不好的,所以容器管理EJB出現了。有人說,J2EE容
器不好,POJO又復興了。實體BEAN的性能不怎么好,比較慢并且很重;Hibernate出現了,人們可以忘記SQL了,因為它不太符合人們的習慣。
有人說,J2EE是不好的,他從J2EE中分出一個Spring的框架。有一半的人說沒有什么事情是好的,他們創建了很多的JAVA框架。一個對java
不是很熟悉的人說:”我不舒服很疲憊,那么多的東西要選擇,我將回到JAVA EE中。”
??
?一些企業級的JAVA商店是使用J2EE應用服務器和EJB2.X創建的,它們的結合建立他們的應用是過度了些(殺雞用牛刀),覺得去選擇另
外的一些框架。Spring框架和Hibernate框架的結合似乎是j2ee的一個合理的選擇,但是他們的組合是jee一個輕量級的架構,尤其當非常簡
單的EJB3.0是可以使用的。
?? ?依我的觀點來看,不僅Spring/Hibernate的組合,或者它們單獨使用都是非常好的框架。可以重復使用它們的組件,非常輕便的。
?? ?Spring框架是一些組件的集合它們能夠單獨的使用,而且你也可以一起使用它們通過添加XML文件。如果你就這樣做那么你就會要使用很多的XML。如果你單獨的使用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.(那位幫我完成?謝謝!)
??
?關于Hibernate,我不能夠肯定為什么那么多的人把它當做首選。我明白一個企業架構將使用它,投資一個新的設計在許多的商業應用,迫使
更多的企業把它作為標準去實現數據持久化。如果你是開發一個典型的CRUD的應用,尤其當你已經在使用它而且數據庫沒有完全設計出來,為什么更加為
HIBERNATE而擔心呢?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年,許多的人對EJB是憤怒的,把它作為一個多余的有著許多繁瑣的XML描敘文件的復雜框架。現在EJB3.0,使用注釋,視圖在一次的去吸
引企業級開發員。這不是那么容易的,EJB給他們是一個不好的映像。當你用Spring/Hibernate取代EJB時,你不要欺騙你自己,它沒有使你
的開發容易許多。
??
?我相信在單獨的POJO的環境中他們沒有什么不了解的,知道怎樣去執行特定的功能(例如,發送消息,事務管理,基于提供的SQL創建好的報
表,一些財經領域的過程【model some financial
process】,查找最好的線路,等等)。僅僅傳遞一些必須的參數到一個黑合中,返回結果,無論你想要什么。Ioc和依賴注入不是新鮮的事情,它工作的
非常好。十多年以來,我一直使用它(不知道它將來的名字)在PB的應用中。它出現在事件驅動程序中。我是創建用戶對象關于用戶事件。無論誰想傳遞一些信息
到這個對象將激活一個用戶事件,這個事件將攜帶數據注入到正確的對象中。look,ma!,no,
wires!,今天,我同樣的在ActionScript3中使用。停止配置(stop
wiring),僅僅寫一些代碼業務應用的需要,一個新的應用忘記那些配置。不要忘記那些可以再度使用的組件。
?? ?今天,Spring也許是JAVA中最好的框架之一。它有一個缺點,那就是它是一個框架(可能說它不是一個標準吧)
??
?Hibernate提供一個緩沖對象。好的,讓我們使用它,整個工作都不需要安裝什么。在某處獲取一個緩沖組件,準備你的行動,傳遞所有需要
的參數構造你的對象。Stop wiring(停止配置),返回到程序。。聯合SQL,JDBC,緩沖(如果有必要)的知識,和一個分頁組件(如果
有必要)它能取得更多。
??
?在我新介紹的一些JAVA程序員,我問他一個問題:“誰知道怎樣從數據庫表中刪除重復的數據”。沒有一個人知道。當我問題同樣的問題在論壇
上,一些JAVA程序員很自信的回復這是關于HIBERANTE,首先你不能重復的創建。非常的謝謝。關于一些現實的經驗。如果數據庫表臟的數據已經存
在,并且弄臟每天都在發生。你不要欺騙自己了,學習SQL吧。
?? ?如果你想寫一個簡單的應用,不要尋找一些輕量的第三,第四方的框架開始。你的業務邏輯在POJO中,你的數據訪問在DAO中。保持它是簡單的。需要事務嗎?找一個事務管理。需要可是升級嗎?考慮使用異步消息在兩個組件之間。
?? ?
?? ? Floyd Marinescu
在它的《開始EJB3》的緒言中說到。EJB3是一個非常重要的里程碑為規范。它不僅意味著容易使用,而且它是首先(在作者看來)這個規范創建,開發群體
的證明他們所需要的,使EJB3是最佳實踐的標準話,取代原來的委員會所定制的。
?? ?他是偉大的,來自一些誹謗的社團的壞家伙最終他們充滿著快樂,他們實際上是專家,具有最佳的實踐和許多開源框架的思想。
?? ?有人說,回到JEE的標準,他創建一個JAVA EE1.5并且非常好。它不是最好的,但是給人們一個共同點,孕育了一個新的企業級應用。
BTW:原文來自(http://java.sys-con.com/read/299903.htm),翻譯的巨爛,希望能拍磚,指出錯誤。我也是嘗試著翻譯一些文章,希望能夠提供自己的閱讀能力。
posted on 2006-11-17 16:53
Harryson 閱讀(1881)
評論(3) 編輯 收藏 所屬分類:
SoftwareEngineering