方育紅
摘要:Spring是一款非常流行的開源開發(fā)框架,利用該框架的IoC和AOP機(jī)制可以實(shí)現(xiàn)多層的javaEE應(yīng)用程序開發(fā)。Spring是一款全方位的整合框架,能夠?qū)崿F(xiàn)多個子框架的組合,這些子框架之間彼此獨(dú)立,當(dāng)使用其他框架方案替代現(xiàn)有框架時,不會影響系統(tǒng)其他的框架實(shí)現(xiàn)部分,極大地降低了系統(tǒng)修改的工作量。
關(guān)鍵詞:Hibernate技術(shù),Spring框架,SSH2 技術(shù)
一 緒論
互聯(lián)網(wǎng)技術(shù)發(fā)展到現(xiàn)在已經(jīng)相當(dāng)成熟,互聯(lián)網(wǎng)已經(jīng)成為一個全世界最大最全的信息中心,越來越多的人在利用互聯(lián)網(wǎng)來完成他們的工作,同時也有越來越多的人利用互聯(lián)網(wǎng)來解放他們的生活,他們利用互聯(lián)網(wǎng)來完成幾乎所有所有現(xiàn)實(shí)生活中的事物。
目前Internet上最流行的應(yīng)用大多是基于網(wǎng)頁方式。最初的web應(yīng)用比較簡單,用戶請求的是一個靜態(tài)頁面。但隨著web技術(shù)的發(fā)展和電子商務(wù)時代的到來,人們不再滿足于建立各種靜態(tài)的發(fā)布信息的網(wǎng)站,更多的時候需要能與用戶交互,并能提供后臺數(shù)據(jù)庫管理和控制等服務(wù)的動態(tài)網(wǎng)站。
到了現(xiàn)在,SSH這一輕量級的框架尤其受人歡迎。
SSH2 在JavaEE項(xiàng)目中表示了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ù)持久化的重任。
在本系統(tǒng)中,所有的數(shù)據(jù)庫訪問操作類DAO都由Hibernate 封裝,然后經(jīng)過Spring 將DAO類的對象注入到相應(yīng)的邏輯處理類service中,然后將service 的對象注入到Action 中。而Action 則由Struts 2控制。這樣SSH2框架就被運(yùn)用到項(xiàng)目中了。
二 文獻(xiàn)研究
Struts2簡介
· 從某種程度上來講,Struts2沒有繼承Struts 1的血統(tǒng),而是繼承WebWork的血統(tǒng)。或者說,WebWork衍生出了Struts2,而不是Struts 1衍生了Struts2。因?yàn)镾truts2是WebWork的升級,而不是一個全新的框架,因此穩(wěn)定性、性能等各方面都有很好的保證:而且吸收了Struts 1和WebWork兩者的優(yōu)勢。
· Apache Struts2是一個優(yōu)雅的,可擴(kuò)展的JAVA EE web框架??蚣茉O(shè)計(jì)的目標(biāo)貫穿整個開發(fā)周期,從開發(fā)到發(fā)布,包括維護(hù)的整個過程。
· Apache Struts 2即是之前大家所熟知的WebWork 2。在經(jīng)歷了幾年的各自發(fā)展后,WebWork和Struts社區(qū)決定合二為一,也即是Struts 2。
· 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.返回請求資源。
· Spring簡介
· Spring是一款非常流行的開源開發(fā)框架,利用該框架的IoC和AOP機(jī)制可以實(shí)現(xiàn)多層的javaEE應(yīng)用程序開發(fā)。Spring是一款全方位的整合框架,能夠?qū)崿F(xiàn)多個子框架的組合,這些子框架之間彼此獨(dú)立,當(dāng)使用其他框架方案替代現(xiàn)有框架時,不會影響系統(tǒng)其他的框架實(shí)現(xiàn)部分,極大地降低了系統(tǒng)修改的工作量。
· Spring的核心是一個實(shí)現(xiàn)了IoC(Inversion of Control)模式的輕量級容器。該框架主要目標(biāo)并非為軟件帶來更多的功能,而是為系統(tǒng)搭建一個靈活、可擴(kuò)展的平臺,降低企業(yè)應(yīng)用開發(fā)的復(fù)雜度。使用Spring框架開發(fā),基于普通javabean就可以實(shí)現(xiàn)以前只能有EJB完成的事情。
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ù)語時,其實(shí)指的是Hibernate中的session,而以后會將HttpSession對象稱為用戶session。
· SessionFactory接口:負(fù)責(zé)初始化Hibernate。它充當(dāng)數(shù)據(jù)存儲源的代理,并負(fù)責(zé)創(chuàng)建Session對象。這里用到了工廠模式。需要注意的是SessionFactory并不是輕量級的,因?yàn)橐话闱闆r下,一個項(xiàng)目通常只需要一個SessionFactory就夠,當(dāng)需要操作多個數(shù)據(jù)庫時,可以為每個數(shù)據(jù)庫指定一個SessionFactory。
· Configuration類:負(fù)責(zé)配置并啟動Hibernate,創(chuàng)建SessionFactory對象。在Hibernate的啟動的過程中,Configuration類的實(shí)例首先定位映射文檔位置、讀取配置,然后創(chuàng)建SessionFactory對象。
三 總結(jié)
SSH 在JavaEE項(xiàng)目中表示了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è)計(jì)與實(shí)現(xiàn). 信息化建設(shè),計(jì)算機(jī)與信息技術(shù):95-98
[2] 劉中兵,開發(fā)者突擊:Java Web主流框架整合開發(fā){J2EE+Struts+Hibernate+Spring}. 電子工業(yè)出版社,2010
[3](美)巴特利特 ?周哲玉 等譯. CSS入門經(jīng)典[J].人民郵電出版社.2007.3