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,會讓我們的成功來的更容易。
[摘]struts+spring+hibernate之間的關係與差別(ZT)
相關文章
- C#中 Const 、readonly、static 之間的差別和關係C#
- ODS與DW之間的關係
- TLS與SSL之間關係TLS
- ps 與 svmon之間關係
- 類與類之間的基本關係
- 思考 TPS 與 RT 之間的關係
- 談Ubuntu與FOSS之間的關係(轉)Ubuntu
- FAILGROUP和REDUNDANCY之間的關係關係!AI
- 類之間的關係
- [摘]Struts+Spring+Hibernate整合Spring
- 成員方法與const之間的關係
- 【java】類之間的關係Java
- 關聯關係與依賴關係的區別
- 探索“精益”與“智慧製造”之間的關係
- dispaly、position、float之間的關係與相互作用
- ERP與精益生產之間的關係
- ORACLE標準版與企業版的差別(zt)Oracle
- 前端之DOM解析和渲染與CSS、JS之間的關係前端CSSJS
- Window、WindowManager、View 之間的關係View
- UML中類之間的關係
- tablespace和datafile之間的關係
- 不同層之間的物件關係物件
- 雲端計算、大資料和物聯網之間,之間有什麼關係與區別?大資料
- 大資料技術與Hadoop之間的關係大資料Hadoop
- 特殊特性與FMEA之間的關係是什麼?
- Retrofit2 完全解析 探索與okhttp之間的關係HTTP
- EXPLAIN PLAN FOR 和 SET AUTOTRACE之間的差別AI
- Window, WindowManager和WindowManagerService之間的關係
- git、github、gitlab之間的關係GithubGitlab
- UML類圖--類之間的關係
- Activity、View、Window之間關係的分析View
- QT中類之間的關係圖QT
- .Net Framework各版本之間的關係Framework
- 光敏電阻與光強之間什麼關係?
- 訊息佇列與快遞櫃之間的奇妙關係佇列
- 併發使用者數與TPS之間的關係
- Oracle 查詢表與表之間的 主外來鍵關係Oracle
- listener.ora檔案與tnsnames.ora之間的關係