李曼
摘 要:本文分析了SSH框架技術的優勢及各組成部分,并對各部分的功能特點進行了詳細闡述。
關鍵詞:框架 Struts Spring Hibernate
SSH是struts+spring+hibernate的集成框架,是當前Web應用程序開發采用比較多的一種開源框架技術。本文主要對SSH框架的技術優勢及各組成部分的特點進行分析介紹。
一、SSH框架技術優勢
SSH框架是基于傳統J2EE框架的新技術,SSH框架繼承了J2EE的分層架構模式,二者的不同之處僅在于層與層之間的實現方法。當J2EE框架和SSH架構完成相同的運算任務時,SSH框架消耗的系統資源最少。
SSH框架在業務對象的的平臺專用性上沒有特殊的限定要求,在SSH框架中業務邏輯的實現通過普通的Java對象即可完成。
SSH組合框架技術優勢體現在四個方面:一、分離了Java代碼和HTML代碼,降低了對開發人員要求的復合度。二、是系統的層與層之間的工作相是對獨立的,代碼耦合度低。三、即使脫離了Spring環境的AOP機制,也不會妨礙AOP實現業務的功能。四、與SSH配合使用的Hibernate等夸平臺技術開源性極強,促使了SSH框架的飛速發展。
SSH的技術優勢使得采用SSH框架技術開發的系統具備了很強的可拓展性、可移植性。同時,采用開源的SSH框架能夠大大簡化系統開發的復雜度,縮短系統開發時間。
二、Struts
Struts與SSH框架一樣同樣具有開源性,合理恰當的使用Struts技術可以在一定程度上減少基于MVC模型的Web應用系統的開發時間,從而有效控制系統開發成本。事實上,絕大多數程序員在在使用Servlets和JSP的可擴展的應用時已經將Struts框架技術作為系統開發的標準。
Struts技術基于MVC框架,Struts的實現依賴Servlet和JSP實現。EJB 和JavaBean兩個組件是Struts框架業務功能實現的基礎部件;Action和ActionServlet部件是框架實現控制功能的重要部件;視圖部分則是由若干存在內在聯系的.JSP文件有機構成,來實現系統功能。其工作原理如圖一所示:
1.使用者通過瀏覽器客戶端發送HTTP協議的數據請求。
2.HTTP請求到達服務器后,經過控制器,使用框架結構填充Form Bean。
3.經過填充的數據請求通過框架中控制器的Action組件進行數據業務處理。
4.經過控制器處理過的業務數據調用Struts的基礎部件實現業務邏輯。
5.將業務邏輯經過轉換形成JSP業務進行處理,并將處理結果反或
6.用戶在客戶端或者瀏覽器上得到HTTP請求的響應。
三、Spring
Spring在整個系統體系中提供兩種控架,一種是面向方面編程(AOP)容器框架,另外一種是輕量級的反向控制。
Spring的核心部分是輕量級控制反轉(Inversion of Control,IoC)容器。通過外部的配置文件翻過來調用應用程序來替代原有應用程序調用的控制功能是控制反轉的基本思想。
在框架中進行控制功能的創建工作就實現了輕量級控制反轉,這樣就能使控制功能的編寫其從應用程序的編寫中分離出來。在使用組件調用容器時,那么在框架中的控制功能創建中只需要給出調用組件所用到的對象。典型的輕量級控制反轉工作過程如下:首先創建程序中以后所用到的所有對象,并進行對象屬性設置,對相關的屬性和慣性進行連接配置,最后再確定調用的方法和時間點即可。
Spring架構的反轉控制提供了應用場景和復雜程度不同的兩種注入方式:構造器注入和Setter依賴注入(Dependency Injection)兩種注入方式。Spring支持在實際開發中應用的最為廣泛方法注入Setter(Setter Injection)方法,這種方法使用起來更加直觀、方便。
四、 Hibernate
在面向對象程序設計中,關系數據庫中的表間的關系與對象間關系的匹配沒有有效的轉換來完成匹配,Hibernate的出現可以很好地完成二者之間的關系匹配問題。
Hibernate可以將對象間關系按照一定的邏輯與數據庫中表之間的關系進行高耦合度的匹配,這種轉換由Hibernate自動進行[20]。使用Hibernate可以減少原來面向對象程序設計時大量的程序與數據庫之間SQL的轉換,有效提高開發效率。
Hibernate是Java平臺上高效的ORM映射框架。由于Hibernate使用了反射和運行時字節碼生成技術,所以對于最終用戶而言,Hibernate幾乎是透明地運行。
Hibernate的執行流程如圖二所示:
1. 通過實例化Configuration對象,解析文件,建立對象與數據庫之間的映射關系。
2. 通過創建Session工廠,運用session變量,對數據庫進行操作。
3. 通過創建事務Transation,對對象進行持久化操作。
4. 提交事務,關閉打開的會話,結束操作。
縱觀整個開發過程,Hibernate承接應用程序和基礎數據庫,通過Hibernate,應用程序能夠方便地將對象注入到數據庫中。由執行流程可以看出,Hibernate通過配置文件及利用數據庫作為支撐持續不斷地向應用程序提供服務。換個意思來講,是通過配置文件把普通Java對象直接映射到關系數據庫中,并直接作為關系數據庫的表存儲起來。
SSH是開源的框架技術,它可以部署在AP ACH E等便宜的服務器上,可以脫離大型服務器的約束,從而節省成本開支。另外,SSH作為一款輕量級的框架,還能夠與異步JavaScript和XML框架同時使用,能夠較大程度上降低系統開銷,還能夠較大幅度改善用戶的體驗,從而大大提高系統的性能。
參考文獻:
[1]梁立新.項目實踐——基于Struts Spring Hibernate的Java應用開發[M]. 電子工業出版社, 2006: 23~24
[2]陳天河. Struts Hibernate Spring集成開發寶典[M]. 電子工業出版社, 2007: 56~58
[3]穆福森,吳觀茂. 基于Struts+Spring+Hibe
rnate Web應用開發框架技術[J].電腦知識與技術, 2006(2): 81~82
[4]羅時飛. 精通Spring2.0[M]. 電子工業出版社, 2007: 50~57
[5]孫衛琴. 精通Hibernate:Java對象持久化技術詳解[M]. 電子工業出版社, 2006: 32~34
[6]付京周. 精通Hibernate—Java數據庫持久層開發實踐[M]. 人民郵電出版社, 2007: 56~59