曹華山
摘 要:文章對SSM框架在Web應用開發中的設計與實現進行研究。首先介紹了模型-視圖-控制器設計模式,然后分別介紹了Spring MVC,Spring和Mybatsi3種開發框架的特點和優勢,最后介紹了3種框架的整合方法,旨在對SSM框架在網頁開發中的應用有一定的借鑒和參考價值。
關鍵詞:SSM框架;Web開發;實現
0 引言
網頁開發是一項涉及技術較多的活動,其中最重要的便是開發框架的選擇。良好的開發框架,可以提高開發效率,降低開發周期,減少開發成本,同時還能支持未來的系統快速擴展和移植[1]。現如今,國內有眾多開發框架,其中比較主流的兩類開發框架是Mirosoft公司的.Net平臺和IBM公司的J2EE平臺,J2EE主要面向Java實現程序的設計,并進行網頁開發,平臺EJB組件為核心,可實現跨平臺的移植,因此眾多企業均選擇J2EE作為其開發平臺[2]。但隨著人們對互聯網訪問速度和開發周期要求的不斷提升,J2EE平臺已經無法滿足開發需求。EJB容器具備的事務處理和用戶請求處理等功能和其內部容器耦合度過高,其可移植性變得更差,因此EJB代碼的復雜度變得越來越高,其維護成本和維護技術要求也不斷提高,因此更加輕量級的開發框架如Spring,Struts等便應運而生,其開發和調試效率有了很大的提升[3]。
1 模型-視圖-控制器設計模式
雖然框架眾多,但是就目前來看,所有框架萬變不離其宗,均是按照模型-視圖-控制器(以下簡稱“MVC”)的設計模式進行的。設計模式中的3個容器分別負責不同的智能,其中模型層主要實現業務模型和數據模型的定義、處理,包括對數據庫的查詢和寫入。因此模型層是框架的最核心層。視圖層是根據模型的創建情況,用戶可以基于前臺界面實現對模型的訪問,視圖層一方面可以支持用戶的輸入,另一方面可以實現對用戶請求的相應。控制層主要是根據用戶的請求信息,選擇合適的模型來響應,并不直接參與數據的處理過程,僅僅是在模型層和視圖層起信息傳遞的紐帶作用。因此,此種設計模式將數據、前臺和后臺進行了較好的層次分離,減少了每個模塊之間的耦合程度,滿足了系統的設計目標。現如今SpringMVC,Spring和Mybatis框架(以下簡稱“SSM框架”)是最常用的Web開發框架。下文將對3個框架進行詳細介紹。
2 ? SSM框架
2.1? Spring MVC框架
此種框架是根據Spring框架并利用MVC設計模式構建的,主要用于Web應用的開發。SpringMVC框架,使得Web開發過程中需要的大量JSP中的視圖可以得到快速配置,雖然此種框架和Struts框架類似,但其實現原理不相同。Struts主要實現了類這個等級的攔截,每個類可以對應一個請求。SpringMVC是基于類中方法級別的攔截,每個方法可以對應一個請求,每個方法有對應一個URL。SpringMVC框架所有的工作流程是基于前端控制器、處理器映射、處理適配器、處理器和視圖解析器等組件工作的,其具體工作如下:
(1)支持文件的快速上傳,并進行本地文件的快速解析。
(2)借助處理器的映射功能,可以把請求向處理器進行映射,返回系統執行所需鏈接。
(3)借助映射器可以實現多種類型的處理器映射,借助視圖解析器可以實現邏輯視圖到具體視圖的映射,并可以渲染具體視圖。
(4)借助異常處置解析器,可以解析執行過程中出現的各類異常問題。
2.2? Spring框架
Spring框架是為了適當降低開發公司的開發復雜程度而產生的開源框架,其本質目標是實現開發過程中各個層次之間的隔離,以達到每個層次可靈活選擇組件的目的,同時可以很好地和J2EE開發框架進行集成。Spring開發框架為企業級別的應用開發提供了一種很好的解決方案。此種框架主要是面向AOP進行編程,核心機制是控制反轉機制,同時可以整合各類持久層的框架,并且具有自身的MVC框架。Spring框架的目標不僅是提供某一個層級的解決方案,其最終目標是為J2EE應用開發過程中的各個層級提供解決方案。Spring框架的主要優勢是可以提供一種能夠對中間層的對象和方法進行有效組織的工具,可以防止非法入侵設計,降低了代碼的被污染風險,通過注入機制,降低了各個業務對象彼此間的耦合程度,可以支持AOP級別的日志和事務集中管理功能,ORM和DAO層簡化了開發人員對數據庫的操作。
2.3? Mybatis框架
Mybatis是隸屬于J2EE平臺的框架,其主要面向持久層,通過XML文件的配置和注解的應用,實現對象的定義以及存儲過程的實現。其主要特點是借助SQL實現對象的關聯,代替了傳統的對象和數據庫關聯的方式。同時Mybatis平臺可以實現SQL語句的動態生成,在數據訪問方面,Mybatis是一個很好的工具,與JDBC方法比較,在代碼的數量和注解的實現上,Mybatis優勢明顯。基于XML的配置文件可以很好地實現原始映射,通過映射將JavaBean中規定的接口映射為數據庫中的具體數據記錄。Mybatis主要是通過XML配置文件,將JavaBean、MAP、實數、字符串等數據類型映射成為PreparedStatement和ResultSet結果集中需要的數據類型。Mybatis框架的作用和Hibernate功能相似,但其更適用于變化頻繁的項目。
3 基于SSM框架的整合案例
3.1? Spring MVC和Mybatis框架整合
Spring框架可以很好地實現業務層的處理,可以將Spring MVC和Mybatis框架的各自優勢進行整合,完成整合后,Spring框架便可以作為應用系統的類工廠。首先實現Spring和Mybatis的整合,將數據模型配置、事務管理、SqlSessionFactory、Mapper的創建讓Spring框架處理,Mybatis框架中的配置化文件無需再進行數據源和其他事務的配置,在業務員層實現的過程中無需再通過手動方式SQLSession的注入。具體如下: