卜慶禹 遼寧錦州渤海大學信息科學與技術學院
基于Spring的MVC框架實現Web應用系統設計與實現
卜慶禹 遼寧錦州渤海大學信息科學與技術學院
MVC設計模式是軟件設計中的一種經典設計模式。本文在分析MVC設計模式基本原理以及構成的基礎上,關于基于Spring實現的MVC設計模式的基本原理、參數配置;本文最后以一個應用實例,根據應用系統用戶請求在Spring MVC框架存在的管理周期。為了建立可重用、靈活且易于管理的設計模式實現機制,本文提出一種基于Spring的MVC框架實現應用系統設計與實現。Spring MVC框架的視圖層是基于JSP技術實現的,系統采用總體控制原則的方法實現業務邏輯控制轉發功能,采用對象映射類完成數據持久化操作。基于控制反轉/面向切面技術實現應用系統管理,并將Spring MVC框架應用網絡收藏夾的開發中。
Spring MVC框架 Web應用系統 設計模式 控制反轉 面向切面
目前,大多數的應用程序都基于MVC設計模式實現的應用系統,其中包括Web應用程序框架。Spring框架為我們提供了MVC設計模式的實用機制,Spring框架按照分發器的模式進行設計,配置的數據映射關系、視圖解析模式、支持本地文件上傳功能等。該設計機制結構清晰、代碼可重用性高、執行效率高等優點,但在時機應用系統設計與開發過程中,其缺點是實現難度較大、文件配置比較復雜,重要的是沒有數據持久化方案。
目前,Spring框架為我們所提供了兩種數據持久化機制,第一種通過ORM對象與表字段之間的關系映射為工具,第二種則通過對JDBC數據庫對象連接類實現對數據封裝和持久化操作。前者能緩解面向對象數據與關系數據庫存在不關聯的現象,但此過程必須依賴對象映射工具。后者設計機制簡單易用而且方便關聯,但是缺點是未能解決面向對象數據與關系數據庫之間的存在不關聯的現象。
正因如此,本文研究針對Spring框架中的MVC設計模式實現功能擴展實踐,提出一種由Spring框架改進的MVC設計模式實現Web應用系統,其基本結構和設計機理,并以基于Spring框架改進的MVC實現網絡收藏夾為真實案例講述系統的設計與實現過程。
2.1 MVC的基本設計思想
Model、View和Controller的簡稱,即是MVC設計架構。需要實現業務功能的分離,應用系統形成以模型、視圖和控制三層的軟件架構。
第一,模型層負責處理業務以及狀態的處理過程。業務狀態對于其他層而言看不見的,模型層負責數據處理,收集數據處理結果。
第二,視圖層負責數據交互管理,對于Web應用系統視圖層通過HTML技術實現,但是,各種網頁前端技術可以應用其中,例如JS技術。通常情況下,視圖的作用負責對頁面控件數據的采集和系統處理數據的顯示,而不負責在視圖層的業務功能處理過程。
第三,控制層負責從用戶獲取相關的請求操作,負責建立模型與視圖之間聯系,共同完成用戶請求操作。在MVC設計模式中,控制層并不需要做任何的業務數據處理,它只負責找到相匹配的模型的函數,并將參數傳遞該模型車的函數。當用戶發出請求時,模型層處理完畢業務數據控制轉發給相應視圖層為用戶顯示。
第四,業務功能模型的設計。業務模型層設計主要實現對數據模型設計,數據模型主要完成數據持久化操作,是指實體對象與表字段一一映射關系。
2.2 基于MVC設計模式開發應用系統的優點
業務數據處理與數據顯示在同一個文件的編碼方式,其缺點是使得程序編寫與調試變得麻煩,而基于MVC設計模式實現的Web應用系統設計與實現過程,具備如下的優點:
①模型層與視圖層存在一對多的關系。全部視圖及時獲得來自于模型層數據的動態變化,使得視圖層與控制層數據同步。
②允許修改視圖層與控制層之間的對應關系,可以實現需求動態變更。
③代碼可移植性與可重用性較好。由于模型層是獨立于其他層的,因此模型層可以實現不同平臺工作的移植。需要其他的平臺對視圖層與控制層實現動態的修改。
根據MVC設計架構的基本原理實現應用系統需要獲取系統應用的需求,設計應用系統的MVC結構前提需要充分了解系統的全部需求。
3.1 Spring MVC框架的基本組件和處理流程
Spring框架MVC設計結構實現了MVC的核心組件,它作為控制器和處理邏輯為用戶提供了高級設計模式的功能。重要的是向MVC設計結構添加控制反轉功能,這使得程序代碼具備高度耦合,提供了某種配置可實現動態變更組件可行性。Spring框架MVC設計結構實現接受來自于用戶請求過程。
①前端控制器,它負責為處理程序控制轉發用戶請求和處理結果,并快速執行視圖解析。它根據轉發地址給特定的控制器,負責處理具體也去請求對象,控制轉發器實現對模型層和視圖層代碼解析。
②控制器,控制器負責對Web業務層處理數據邏輯的組件,再根據實際調用需求業務Service完成數據業務邏輯處理請求。系統中存在一個缺省的處理器,它只是簡單的控制轉發接口。
③模型層和視圖層,控制器并傳遞給前端控制器某些參數和相關函數,控制轉發器接收到來自于模型層和視圖層,將解析相關代碼,并將模型加載到相應視圖上傳給用戶界面。
④視圖解析器,Spring框架提供了視圖解析的功能,大多數情形,模型層和視圖層的數據封裝,就需要通過視圖解析器解析相應的數據顯示資源。Spring框架中內置了很多種技術,其中包括:JSP技術、模型模版和視圖顯示的支持。
3.2 Spring MVC框架的應用配置
Spring框架MVC的設計架構應用配置主要包括:業務邏輯控制器、視圖解析器以及用戶請求。
第一,配置控制轉發器DispatcherServlet類,其配置格式:

第二,使用Controller定義控制轉發類,Spring框架提供基于一種注解的控制器類,該控制器不需要完成某種接口,也不需要實現框架的基類。
第三,使用映射請求RequestMapping類完成類定義的標注,將Controller定義控制轉發類與其他類關聯,以便下一步實現的控制轉發。在映射請求RequestMapping類實現了Controller接口,而通過方法實現的過程中讓功能擴展Spring框架。
3.3 Spring MVC框架中XML配置的缺點
Bean容器則是Spring框架的核心所在,并有效地結合AOP技術,將業務功能管理加入其中,就需要構建無狀態會話Bean容器即可實現一個輕量級框架。
Spring框架實現MVC的設計結構存在多種組件,他們都是基于XML文件格式實現的參數配置,Spring框架MVC設計結構的缺點:
①該框架必須要結合工程中的配置文件才可以對象間的一一對應關系,該配置文件的代碼可讀性非常差。
②必須經過依賴關系實現對XML文件解析,在XML文件中必須將這種配置關系全部配置正確后系統才可以運行,而系統運行之后并不能識別XML文件的錯誤之處。
③由于系統中引入XML文件配置和描述的JavaBean對象,當應用系統的實體對象達到一定數量時,該應用系統很難升級和維護,一旦應用系統中的XML文件變多,可讀性就越差。本文建議配置完XML文件的功能,從而有效減少XML文件配置任務,有效地提高程序代碼的高內聚性。
4.1 視圖層的具體實現
視圖層的實現是通過JSP技術,本文主要是根據實際的功能需求構建視圖層頁面顯示過程。
4.2 控制層的實現
①系統主控制器的實現
系統主控制器的實現過程主要包括:構建和配置主控制類。主控制類需要繼承于HttpServlet類,主要繼承了基本的接口函數。
②系統過濾器的實現
系統過濾器MainFilter接口是由Filter類所組成,前者負責實現主要過濾功能,后者玩初始化Filter類。Filter類實現在系統的Web.xml配置文件中過濾,過濾器模式使用的URL樣式,而且兩者使用控制元素不同而已。
4.3 業務邏輯層的實現
①基本業務邏輯處理類的實現
基本業務邏輯處理類Manager()函數,其與具體業務非常緊密,需根據特定的業務處理才能夠實現基本業務處理功能,基本業務邏輯處理類實現步驟如下:
第一,系統中定義了xxxManager()類,會根據實際業務功能需求繼承父類的方法,每個接口方法會實現具體業務需求,例如:管理用戶功能、實現訂單管理等。
第二,系統中定義了xxxManagerImpl()接口類,根據特定的業務功能編寫此類接口方法。在接口實現過程中,完成數據的持久化操作與用戶的交互行為,通過調用數據訪問類DAO實現對數據庫的訪問操作。
第三,配置Application Context.xml文件,為xxxManagerImpl接口類配置實體對象和注入能夠操作數據庫對象。
②AOP事務的實現
高級業務邏輯處理是需要基于控制反轉機制和面向切面編程技術共同實現的管理操作。控制反轉完成用于業務對象依賴注入關系的一種機制,其原理是將程序員所設計的類與類之間的關系全部交給容器實現,只需要調用類在這個容器中定義函數名稱即可,有效減小業務對象之間的彼此依賴度,并實現了很多業務對象之間耦合度。
Spring框架實現的MVC設計模式主要是利用控制反轉策略和依賴注入機制共同完成,以達到降低代碼之間的耦合度、減少重復代碼編寫量的目的。Spring框架實現的MVC設計模式分離了Web應用系統的全部功能。本文重點研究了Spring框架實現的MVC設計模式的基本原理和組成。此外,Spring框架實現的MVC設計模式可通過配置相關的攔截器類實現AOP權限反轉控制,如何在Spring框架實現的MVC設計模式基本流程是下一步的研究方向。
[1]鄒存潔.基于MVC模式的Spring框架的應用與研究[D].大連:大連海事大學,2006
[2]陳平.基于Spring的輕量級Web框架的研究與設計[D].江蘇鎮江:江蘇大學,2005
[3]符培炯,杜忠軍.Spring在實現MVC構架中的應用[J].計算機技術與發展,2006,16(6):236-238
[4]張利,吳傳勝,崔雷,等.應用MVC模式構建Web信息系統框架研究[J].合肥工業大學學報:自然科學版,2007,30(7):829-832
[5]王承冠,陸金桂.基于SPRING和VELOCITY的Web開發模式及其應用[J].微計算機信息,2006,22(30):230-232