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