struts+spring+hibernate之間的關系與差別 (轉)

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


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

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

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

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

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

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

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

          評論

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

          初學這些框架,我覺得搞清出其中的關系比較重要,也有利于我有針對的學習,希望也給很多初學者幫助。
          主站蜘蛛池模板: 全椒县| 将乐县| 平阴县| 时尚| 灌阳县| 霍林郭勒市| 平山县| 循化| 台中市| 蒙阴县| 德安县| 太和县| 乐至县| 璧山县| 瑞昌市| 绥中县| 汉源县| 沂水县| 盱眙县| 澄城县| 兴国县| 怀柔区| 乌恰县| 邻水| 石屏县| 始兴县| 黎城县| 出国| 三亚市| 独山县| 封开县| 城市| 莱州市| 台湾省| 蚌埠市| 和平区| 余江县| 梧州市| 且末县| 财经| 江阴市|