| 導購 | 订阅 | 在线投稿
分享
 
 
 

Struts+Spring+Hibernate 分析

2007-02-07 12:18:48  編輯來源:互聯網  简体版  手機版  移動版  評論  字體: ||

現在給美國老作項目,他們那邊要求一定要用"Struts+Spring+Hibernate"來實現,下面就是我對它們組合的理 解:

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,會讓我們的成功來的更容易。

現在給美國老作項目,他們那邊要求一定要用"Struts+Spring+Hibernate"來實現,下面就是我對它們組合的理 解: 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,會讓我們的成功來的更容易。
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
王朝網路微信公眾號
微信掃碼關註本站公眾號 wangchaonetcn
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有