方育紅
摘要:隨著web技術的發展和電子商務時代的到來,人們不再滿足于建立各種靜態的發布信息的網站,更多的時候需要能與用戶交互,并能提供后臺數據庫管理和控制等服務的動態網站。SSH這一輕量級的框架尤其受人歡迎。
關鍵詞:Struts2;Spring;Hibernate
1緒論
SSH2 在JavaEE項目中表示了3種框架,即Struts2 + Spring +Hibernate。 Struts對Model,View和Controller都提供了對應的組件。Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架,它由Rod Johnson創建。它是為了解決企業應用開發的復雜性而創建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。 Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,可以應用在任何使用JDBC的場合,可以在Servlet/JSP的Web應用中使用,也可以在應用EJB的JavaEE架構中取代CMP,完成數據持久化的重任。
2Struts2、Spring、Hibernate性能及工作流程
2.1 Struts2簡介
從某種程度上來講,Struts2沒有繼承Struts 1的血統,而是繼承WebWork的血統。或者說,WebWork衍生出了Struts2,而不是Struts 1衍生了Struts2。因為Struts2是WebWork的升級,而不是一個全新的框架,因此穩定性、性能等各方面都有很好的保證:而且吸收了Struts 1和WebWork兩者的優勢。
·Apache Struts 2即是之前大家所熟知的WebWork 2。在經歷了幾年的各自發展后,WebWork和Struts社區決定合二為一,也即是Struts 2。
·下圖2-1為Struts2的工作流程圖:
·Struts2從客戶端瀏覽器發出請求到獲得響應整個處理過程的描述如下圖所示:
·1.HTTP請求;
·2.經過過濾器鏈;
·3.FilterDispatcher處理請求;
·4.選擇合適的Action;
·5.調用Action,調用業務對象;
·6.返回相應Result;
·7.返回請求資源。
·
2.2 Spring簡介
Spring是一款非常流行的開源開發框架,利用該框架的IoC和AOP機制可以實現多層的javaEE應用程序開發。Spring是一款全方位的整合框架,能夠實現多個子框架的組合,這些子框架之間彼此獨立,當使用其他框架方案替代現有框架時,不會影響系統其他的框架實現部分,極大地降低了系統修改的工作量。
Spring的核心是一個實現了IoC(Inversion of Control)模式的輕量級容器。該框架主要目標并非為軟件帶來更多的功能,而是為系統搭建一個靈活、可擴展的平臺,降低企業應用開發的復雜度。使用Spring框架開發,基于普通javabean就可以實現以前只能有EJB完成的事情。
Spring 框架是一個分層架構,由 7 個定義良好的模塊組成。Spring 模塊構建在核心容器之上,核心容器定義了創建、配置和管理 bean 的方式, Spring 框架的每個模塊(或組件)都可以單獨存在,或者與其他一個或多個模塊聯合實現。
2.3? Hibernate簡介
·Hibernate的核心接口一共有6個,分別為:Session、SessionFactory、Transaction、Query、Criteria和Configuration。這6個核心接口在任何開發中都會用到。通過這些接口,不僅可以對持久化對象進行存取,還能夠進行事務控制。下面對這6個核心接口分別加以介紹。
·Session接口:負責執行被持久化對象的CRUD操作(CRUD的任務是完成與數據庫的交流,包含了很多常見的SQL語句。)。但需要注意的是Session對象是非線程安全的。同時,Hibernate的session不同于JSP應用中的HttpSession。這里當使用session這個術語時,其實指的是Hibernate中的session,而以后會將HttpSession對象稱為用戶session。
三 總結
SSH 在JavaEE項目中表示了3種框架,即 Spring + Struts2 +Hibernate。 Struts對Model,View和Controller都提供了對應的組件。Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架,它由Rod Johnson創建。它是為了解決企業應用開發的復雜性而創建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。 Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,可以應用在任何使用JDBC的場合,可以在Servlet/JSP的Web應用中使用,也可以在應用EJB的JavaEE架構中取代CMP,完成數據持久化的重任。
參考文獻
[1] 劉志海,通用試題庫系統的設計與實現. 信息化建設,計算機與信息技術:95-98.
[2] 劉中兵,開發者突擊:Java Web主流框架整合開發{J2EE+Struts+Hibernate+Spring}. 電子工業出版社,2010.