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