JAVA SSH 框架介紹(轉)

愛做飯的小瑩子發表於2014-09-16

轉載自:http://www.admin10000.com/document/150.html  

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

相關文章