文章目錄
- Struts
- Spring
- Hibernate
- 在SSH 的組合架構模式中,三者各自的作用
SSH 為 struts+spring+hibernate 的一個整合架構,是目前較流行的一種JAVA Web應用程式開源架構。
Struts
Struts是一個基於Sun J2EE平台的MVC架構,主要是採用Servlet和JSP技術來實現的。由於Struts能充分滿足應用開發的需求,簡單易用,敏捷迅速,在過去的一年中頗受關注。Struts把Servlet、JSP、自訂標籤和資訊資源(message resources)整合到一個統一的架構中,開發人員利用其進行開發時不用再自己編碼實現全套MVC模式,極大的節省了時間,所以說Struts是一個非常不錯的應用程式框架。
官方地址:http://struts.apache.org
Spring
Spring是一個解決了許多在J2EE開發中常見的問題的強大架構。 Spring提供了管理業務對象的一致方法並且鼓勵了注入對介面編程而不是對類編程的良好習慣。Spring的架構基礎是基於使用JavaBean屬性的Inversion of Control容器。然而,這僅僅是完整圖景中的一部分:Spring在使用IOC容器作為構建完關注所有架構層的完整解決方案方面是獨一無二的。 Spring提供了唯一的資料訪問抽象,包括簡單和有效率的JDBC架構,極大的改進了效率並且減少了可能的錯誤。Spring的資料訪問架構還整合了Hibernate和其他O/R
mapping解決方案。Spring還提供了唯一的交易管理抽象,它能夠在各種底層交易管理技術,例如JTA或者JDBC事務提供一個一致的編程模型。Spring提供了一個用標準Java語言編寫的AOP架構,它給POJOs提供了聲明式的交易管理和其他企業事務--如果你需要--還能實現你自己的aspects。這個架構足夠強大,使得應用程式能夠拋開EJB的複雜性,同時享受著和傳統EJB相關的關鍵服務。Spring還提供了可以和IoC容器整合的強大而靈活的MVC Web架構。
官方地址:spring: http://www.springsource.org
Hibernate
Hibernate是一個開放原始碼的對象關係映射架構,它對JDBC進行了非常輕量級的對象封裝,使得Java程式員可以隨心所欲的使用對象編程思維來操縱資料庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的用戶端程式實用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成資料持久化的重任。
官方地址:http://www.hibernate.org
在SSH 的組合架構模式中,三者各自的作用
Struts 是一個很好的MVC架構,主要技術是Servlet和Jsp。Struts的MVC設計模式可以使我們的邏輯變得很清晰,讓我們寫的程式層次分明。
Spring 提供了管理業務對象的一致方法,並鼓勵注入對介面編程而不是對類編程的良好習慣,使我們的產品在最大程度上解耦。
Hibernate 是用來持久化資料的,提供了完全物件導向的資料庫操作。Hibernate對JDBC進行了非常輕量級的封裝,它使得與關係型資料庫打交道變得非常輕鬆。
以下是SSH架構圖:
SSH架構圖
Struts負責Web層:
ActionFormBean接收網頁中表單提交的資料,然後通過Action進行處理,再Forward到對應的網頁,在Struts-config.xml中定義了<action-mapping>,ActionServlet會載入進來。
Spring負責業務層管理,即Service:
Service為Action提供統一的調用介面,封裝持久層的DAO,並整合Hibernate,Spring可對JavaBean和事物進行統一管理。
Hibernate負責持久層,完成資料庫的CRUD操作:
Hibernate有一組hbm.xml檔案和PO,是與資料庫中的表相對應的,然後定義DAO,這些是與資料庫打交道的類。
在Struts+Spring+Hibernate系統中,對象之間的調用流程如下:
Struts——>Spring——>Hibernate
JSP——>Action——>Service——>DAO——>Hibernate
原文連結:http://www.admin10000.com/document/150.html