天天看點

JAVA SSH 架構介紹

SSH 為 struts+spring+hibernate 的一個內建架構,是目前較流行的一種JAVA Web應用程式開源架構。

Struts是一個基于Sun J2EE平台的MVC架構,主要是采用Servlet和JSP技術來實作的。由于Struts能充分滿足應用開發的需求,簡單易用,靈活迅速,在過去的一年中頗受關注。Struts把Servlet、JSP、自定義标簽和資訊資源(message resources)整合到一個統一的架構中,開發人員利用其進行開發時不用再自己編碼實作全套MVC模式,極大的節省了時間,是以說Struts是一個非常不錯的應用架構。

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架構。

Hibernate是一個開放源代碼的對象關系映射架構,它對JDBC進行了非常輕量級的對象封裝,使得Java程式員可以随心所欲的使用對象程式設計思維來操縱資料庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的用戶端程式實用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成資料持久化的重任。

Struts 是一個很好的MVC架構,主要技術是Servlet和Jsp。Struts的MVC設計模式可以使我們的邏輯變得很清晰,讓我們寫的程式層次分明。

Spring 提供了管理業務對象的一緻方法,并鼓勵注入對接口程式設計而不是對類程式設計的良好習慣,使我們的産品在最大程度上解耦。

Hibernate 是用來持久化資料的,提供了完全面向對象的資料庫操作。Hibernate對JDBC進行了非常輕量級的封裝,它使得與關系型資料庫打交道變得非常輕松。

以下是SSH架構圖:

JAVA 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系統中,對象之間的調用流程如下:

JAVA SSH 架構介紹

Struts——>Spring——>Hibernate

JSP——>Action——>Service——>DAO——>Hibernate