我思故我強(qiáng)

          J2EE框架(struts+hibernate+spring)

          框架說白了就是JAVA工作者多年以來總結(jié)出的一些開發(fā)標(biāo)準(zhǔn)。讓我們可以以成功的經(jīng)驗(yàn)?zāi)J絹黹_發(fā)我們自已的系統(tǒng),一般使用框架的好處是
          ·在好的框架下,開發(fā)者只需要寫一些必須的代碼;他們不需要直接接觸底層的API。 這一點(diǎn)很重要。

          ·經(jīng)過良好設(shè)計的框架可以為程序提供清晰的結(jié)構(gòu)并且提高程序的內(nèi)聚性。好清晰的結(jié)構(gòu)使得其他人可以更容易加入項(xiàng)目。

          ·一個容易使用的框架可以通過一些例子和文檔為用戶提供最佳實(shí)踐。

          ·采用成功的框架的代碼比自己的代碼容易測試

          J2EE本身提供了一些框架。比如, Enterprise Java-Beans (EJB) container或者 Servlet engine 而這些框架一般在中小工程中我們都不會使用,會讓我們把大量的時間浪費(fèi)在開發(fā)框架上。
          而現(xiàn)在比較流行開源框架,主要是struts,hibernate,spring等
          比如struts是在原有mvc基礎(chǔ)上實(shí)現(xiàn)在代碼分離等功能,非常好用。
          而hibernate可以把我們的關(guān)系型數(shù)據(jù)庫轉(zhuǎn)換成我們在JAVA中的面像對像來使用。從而讓我們在開發(fā)時不需要直接寫SQL語句,比如database.getName();就可以直接把數(shù)據(jù)庫中的用戶名取出來。
          Spring
          J2EE框架被大規(guī)模地運(yùn)用到項(xiàng)目中,而項(xiàng)目總要負(fù)責(zé)這些框架以及自己業(yè)務(wù)代碼的連接,使之真正融合到一起。Spring就是專注于這個問題的,它和Hibernate融合的很好。
          這三種框架在一起并不沖突,所以現(xiàn)在最常用的框架就是
          struts+hibernate+spring就像我們蓋房子一樣,先把框架搭好,我們在在上面寫代碼就很規(guī)范。


          Struts框架介紹 :

          Struts只是一個MVC框架(Framework),用于快速開發(fā)Java Web應(yīng)用。Struts實(shí)現(xiàn)的重點(diǎn)在C(Controller),包括ActionServlet/RequestProcessor和我們定制的 Action,也為V(View)提供了一系列定制標(biāo)簽(Custom Tag)。但Struts幾乎沒有涉及M(Model),所以Struts可以采用JAVA實(shí)現(xiàn)的任何形式的商業(yè)邏輯。
          Spring是一個輕型容器(light-weight container),其核心是Bean工廠(Bean Factory),用以構(gòu)造我們所需要的M(Model)。在此基礎(chǔ)之上,Spring提供了AOP(Aspect-Oriented Programming, 面向?qū)用娴木幊蹋┑膶?shí)現(xiàn),用它來提供非管理環(huán)境下申明方式的事務(wù)、安全等服務(wù);對Bean工廠的擴(kuò)展ApplicationContext更加方便我們實(shí) 現(xiàn)J2EE的應(yīng)用;DAO/ORM的實(shí)現(xiàn)方便我們進(jìn)行數(shù)據(jù)庫的開發(fā);Web MVC和Spring Web提供了Java Web應(yīng)用的框架或與其他流行的Web框架進(jìn)行集成。
          就是說可將兩者一起使用,達(dá)到將兩者自身的特點(diǎn)進(jìn)行互補(bǔ)。


          spring 框架介紹 :


          它關(guān)注的領(lǐng)域是其他許多流行的Framework未曾關(guān)注的。Spring要提供的是一種管理你的業(yè)務(wù)對象的方法。

          Spring既是全面的又是模塊化的。Spring有分層的體系結(jié)構(gòu),這意味著你能選擇僅僅使用它任何一個獨(dú)立的部分,而它的架構(gòu)又是內(nèi)部一致。 因此你能從你的學(xué)習(xí)中,得到最大的價值。例如,你可能選擇僅僅使用Spring來簡單化JDBC的使用,或用來管理所有的業(yè)務(wù)對象。

          它的設(shè)計從一開始就是要幫助你編寫易于測試的代碼。Spring是使用測試驅(qū)動開發(fā)的工程的理想框架。


          Spring不會給你的工程添加對其他的框架依賴。Spring也許稱得上是個一站式解決方案,提供了一個典型應(yīng)用所需要的大部分基礎(chǔ)架構(gòu)。它還涉及到了其他framework沒有考慮到的內(nèi)容。

          盡管它僅僅是一個從2003年2月才開始的開源項(xiàng)目,但Spring有深厚的歷史根基。


          Spring架構(gòu)上的好處

          在我們進(jìn)入細(xì)節(jié)之前,讓我們來看看Spring能夠給工程帶來的種種好處:

          Spring能有效地組織你的中間層對象,不管你是否選擇使用了EJB。如果你僅僅使用了Struts或其他為J2EE的 API特制的framework,Spring致力于解決剩下的問題。

          Spring能消除在許多工程中常見的對Singleton的過多使用。根據(jù)我的經(jīng)驗(yàn),這是一個很大的問題,它降低了系統(tǒng)的可測試性和面向?qū)ο蟮某潭取?

          通過一種在不同應(yīng)用程序和項(xiàng)目間一致的方法來處理配置文件,Spring能消除各種各樣自定義格式的屬性文件的需要。曾經(jīng)對某個類要尋找的是哪個 魔法般的屬性項(xiàng)或系統(tǒng)屬性感到不解,為此不得不去讀Javadoc甚至源編碼?有了Spring,你僅僅需要看看類的JavaBean屬性。 Inversion of Control的使用(在下面討論)幫助完成了這種簡化。

          通過把對接口編程而不是對類編程的代價幾乎減少到?jīng)]有,Spring能夠促進(jìn)養(yǎng)成好的編程習(xí)慣。

          Spring被設(shè)計為讓使用它創(chuàng)建的應(yīng)用盡可能少的依賴于他的APIs。在Spring應(yīng)用中的大多數(shù)業(yè)務(wù)對象沒有依賴于Spring。

          使用Spring構(gòu)建的應(yīng)用程序易于單元測試。

          Spring能使EJB的使用成為一個實(shí)現(xiàn)選擇,而不是應(yīng)用架構(gòu)的必然選擇。你能選擇用POJOs或local EJBs來實(shí)現(xiàn)業(yè)務(wù)接口,卻不會影響調(diào)用代碼。

          Spring幫助你解決許多問題而無需使用EJB。Spring能提供一種EJB的替換物,它們適用于許多web應(yīng)用。例如,Spring能使用AOP提供聲明性事務(wù)管理而不通過EJB容器,如果你僅僅需要與單個數(shù)據(jù)庫打交道,甚至不需要一個JTA實(shí)現(xiàn)。

          Spring為數(shù)據(jù)存取提供了一個一致的框架,不論是使用的是JDBC還是O/R mapping產(chǎn)品(如Hibernate)。

          posted on 2008-07-29 16:28 李云澤 閱讀(2058) 評論(0)  編輯  收藏 所屬分類: J2EE 、HibernateSpring 、Struts

          主站蜘蛛池模板: 霍城县| 高雄市| 正定县| 永康市| 房山区| 贵溪市| 开阳县| 厦门市| 资兴市| 六盘水市| 铜陵市| 拉萨市| 祁东县| 保山市| 龙门县| 虞城县| 宁武县| 吉木乃县| 安龙县| 新余市| 沁源县| 那坡县| 大庆市| 旬邑县| 盖州市| 理塘县| 榆社县| 西平县| 梁河县| 望奎县| 岳阳县| 昂仁县| 阿克苏市| 洛阳市| 浦县| 南充市| 洪雅县| 大埔县| 崇左市| 宁都县| 莲花县|