struts+spring+hibernate之間的關(guān)系與差別 (轉(zhuǎn))

          出處:http://www.54bk.com/user1/263/archives/2005/27238.html
           
          Struts:用來作VC部分,即控制和顯示作用;
          Spring:用來作數(shù)據(jù)庫操作的事務(wù)處理,在配置文件里配置好就OK了;
          Hibernate:用來作DAO處理,在此用了Spring的getHibernateTemplate()方法來操作hsql進(jìn)行數(shù)據(jù)增刪改等操作。


          1,先說說你的表示層
          其實沒有必要使用struts,除非你有歷史遺留問題不得不用struts,因為spring的mvc已經(jīng)足夠好了:
          a.清晰的模型對象傳遞,這個模型對象可以是任何java對象,如果你不在意在各層之間傳遞同一個對象的話,這個模型對象就可以是hibernate的persistent object,通過open session in view,你可以以一致的方式使用業(yè)務(wù)模型對象。
          b.reference data,讓你清晰的處理look up數(shù)據(jù)。
          c. 多種可供選擇的視圖解析類型,可以在prpperties文件中定義page的邏輯名,或者定義在xml文件里的struts tiles邏輯名。
          d.無干擾的數(shù)據(jù)綁定,一個<spring:bind>可以對模型對象和form進(jìn)行綁定,就像struts自動填充formbean一樣,但spring 的綁定功能不會干擾界面布局,也就是說,你仍然可以使用html編輯器對頁面進(jìn)行處理。
          e.客戶端驗證。
          f.服務(wù)器端驗證。
          g.多種可供選擇的控制器,其中支持表單的控制器提供了類似vb中表單事件處理的功能,這是一系列的workflow,在你認(rèn)為合適的地方,插入你的處理代碼。

          spring mvc與struts比較,可能只是少了很多taglib和頁面布局,但這都可以通過第三方工具補(bǔ)充,因為視圖相比于其他部分,畢竟更輕量級一些。可以選擇的第三方工具可以是:displaytag,struts-menu,struts tiles,等等。

          2,在說說業(yè)務(wù)邏輯部分
          業(yè)務(wù)邏輯類可以用spring的beans進(jìn)行配置,并由spring管理與表現(xiàn)層的控制器及更下層的DAO對象的關(guān)系。另外,還可以進(jìn)行配置性的事務(wù)處理,一個interceptor配置,免去了你的所有煩惱。

          3,dao層
          用spring 封裝后的hibernate API,讓Hibernate繼續(xù)瘦身,并且通過spring建立與上層的關(guān)系。

          4,最后,說說hibernate的po
          你可以選擇你喜歡的任何方式進(jìn)行建模,以下工具提供了足夠的支持:
          a. 從java對象到hbm文件:xdoclet
          b. 從hbm文件到j(luò)ava對象:hibernate extension
          c. 從數(shù)據(jù)庫到hbm文件:middlegen
          d. 從hbm文件到數(shù)據(jù)庫:SchemaExport

          至于可供參考的項目,可以看看spring的例子petclinic(spring+hibernate),還有一個不可不看的網(wǎng)站:http://raibledesigns.com/wiki/Wiki.jsp?page=AppFuse(struts+spring+hibernate或spring mvc + spring +hibernate)。另外,spring帶的mvc step-by-step是一個很好的入門教程。

          需要說明的是,spring僅僅為我們提供了一種設(shè)計和實現(xiàn)框架的方式,因此,項目的成功與否,是與我們的構(gòu)架設(shè)計緊密相關(guān)的,在有了好的設(shè)計思想以后,善用spring,會讓我們的成功來的更容易。
          posted on 2006-01-09 09:57 隨風(fēng)逝 閱讀(1296) 評論(1)  編輯  收藏 所屬分類: hibernatespringstruts

          評論

          # re: struts+spring+hibernate之間的關(guān)系與差別 (轉(zhuǎn)) 2006-01-09 09:58 sunny  回復(fù)  更多評論   

          初學(xué)這些框架,我覺得搞清出其中的關(guān)系比較重要,也有利于我有針對的學(xué)習(xí),希望也給很多初學(xué)者幫助。
          主站蜘蛛池模板: 砚山县| 宜宾县| 青神县| 新营市| 营口市| 交城县| 南丰县| 苏尼特右旗| 沐川县| 济源市| 夹江县| 牟定县| 龙门县| 泽库县| 新疆| 桑植县| 静宁县| 庆阳市| 兴文县| 攀枝花市| 崇阳县| 二连浩特市| 巫溪县| 蒙城县| 天祝| 湾仔区| 盈江县| 濉溪县| 万宁市| 南漳县| 牙克石市| 汶川县| 新巴尔虎右旗| 太仆寺旗| 双柏县| 财经| 邵武市| 松滋市| 东乡| 甘德县| 介休市|