詳解SSH 框架中對象調用流程

詳解SSH 框架中對象調用流程

SSH不是一個框架,而是多個框架(struts+spring+hibernate)的集成,是目前較流行的一種Web應用程序開源集成框架,用於構建靈活、易於擴展的多層Web應用程序。web

集成SSH框架的系統從職責上分爲四層:表示層、業務邏輯層、數據持久層和域模塊層,以幫助開發人員在短時間內搭建結構清晰、可複用性好、維護方便的Web應用程序。其中使用Struts做爲系統的總體基礎架構,負責MVC的分離,在Struts框架的模型部分,控制業務跳轉,利用Hibernate框架對持久層提供支持,Spring作管理,管理struts和hibernate。spring

SSH框架的系統是基於MVC的。Struts 是一個很好的MVC框架,主要技術是Servlet和Jsp。Struts的MVC設計模式可使咱們的邏輯變得很清晰,讓咱們寫的程序井井有條。基於Struts開發能夠簡化開發難度,提升開發效率。數據庫

Spring 提供了管理業務對象的一致方法,並鼓勵注入對接口編程而不是對類編程的良好習慣,使咱們的產品在最大程度上解耦。編程

Hibernate 是用來持久化數據的,提供了徹底面向對象的數據庫操做。Hibernate對JDBC進行了很是輕量級的封裝,它使得與關係型數據庫打交道變得很是輕鬆。設計模式

在Struts+Spring+Hibernate系統中,對象之間的調用流程以下:服務器

ssh調用流程

Struts——>Spring——>Hibernate架構

JSP——>Action——>Service——>DAO——>Hibernate框架

SSH工做流程

a.啓動服務器,加載工程以及web.xml.ssh

(實例化Lisener,Filter等組件,將Spring容器和Struts2控制建立)jsp

b.客戶端發送請求,全部請求進入Struts2控制器。控制器根據請求類型不一樣,分別處理。

(action請求,*.action會進入struts.xml尋找<action>配置.

其餘請求,*.jsp會直接調用請求資源,生成響應信息)

c.Struts2控制器根據<action>配置調用一個Action對象處理。

整合方法一:將Action交給Spring容器

(Action對象由struts2-spring-plugin.jar插件提供的

StrutsSpringObjectFactory負責去Spring容器獲取)

整合方法二:將Action置於Spring容器以外

(Action對象由struts2-spring-plugin.jar插件提供的

StrutsSpringObjectFactory負責建立,而後到Spring容器中尋找與Action屬性匹配的Bean對象,給Action對象注入。(默認採用名稱匹配規則)

d.Struts2控制器執行defaultStack攔截器、Action對象、Result等組件處理.

e.執行Action的execute業務方法時,若是使用Service或DAO採用Spring的IoC機制調用。

f.執行Result生成響應信息,執行後續攔截器處理

g.將響應信息輸出。

相關文章
相關標籤/搜索