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