解讀Spring MVC項目技術架構

在Java EE開發中,Spring和Spring MVC已經是標配的基礎系統架構。前面已經介紹了Spring框架,在這裏主要說說Spring MVC。

實際上Spring MVC是Spring框架的一部分,Spring框架成爲Java EE開發主流框架後,Spring開發小組又在Spring框架的基礎上推出了MVC架構,主要用於支持WEB應用程序的開發。

MVC是Model(模型,也稱爲數據模型)、View(視圖)、Controll(控制器)三個英文單詞首字母的縮寫。從MVC組合的三個單詞也可以看出,MVC是一種設計模型,它使用控制器將數據模型和視圖進行分離,也就是將視圖和數據解耦。這樣的好處是後端處理的數據模型和前端視圖顯示的數據格式無關,實現一個數據模型可以對應多個視圖以不同的方式來展現數據,當數據模型或視圖發生變化時,相互之間的影響也會降低到最低。

MVC中最重要的核心就是控制器,控制器與視圖和模型相對獨立,它起到一個負責分發請求和返回處理結果的作用,對請求和數據模型的處理一般由JavaBean負責。

MVC雖然需要程序員多寫一些額外的代碼,但它強制性地將視圖和數據分開所帶給我們的好處是毋庸置疑的。可以設想一下,在早期的JSP網頁中,處理數據的代碼和HTML展現的代碼是混合在一起的,它們被完全耦合到一個文件中,程序邏輯也非常混亂,對後期程序的維護和擴展都是很大的問題。

前面我們談了MVC的設計結構和在WEB開發中的優勢,下面我們談談在實際開發中MVC的運用和架構。下圖是在實際開發中的MVC架構圖。

 

圖 1 MVC實際開發架構圖

上圖是在實際開發中MVC的架構圖,架構圖分爲兩部分:虛線框外的是WEB程序的瀏覽器部分,用戶通過瀏覽器與系統進行交互,同時瀏覽器也負責解析JSP頁面;虛線框內的是WEB程序的後臺部分,這部分包括控制器(Controller類)、業務邏輯(Service類)、數據模型(實體類)、數據持久層(Mybatis框架)和MySQL數據庫管理系統。

在MVC架構中,JSP頁面就是視圖,用戶通過JSP頁面發出請求後,Spring MVC會根據請求路徑,將請求發給與請求路徑對應的Controller類,Controller類調用Service類對請求進行處理,Service類會調用數據持久層MyBatis完成對實體類的存取和查詢工作,並將處理結果返回到Controller類,Controller類將處理結果轉換爲ModelAndView對象,JSP接收ModelAndView對象並進行渲染。

Controller類是在普通Java類的頭部加入@Controller註解,使其變爲Controller類,在Controller類中使用@RequestMapping註解標記在Controller類方法的頭部,使該方法可以響應一個WEB請求地址,當JSP頁面向這個地址發送請求時,該方法會被調用。下面的代碼是Controller類的樣例。

 

Service類爲業務邏輯處理類,在類的頭部使用註解@Service標註,被註解@Service標註的類會被Spring框架自動注入到Controller類。下面的代碼是Service類的樣例。

 

實體類也是POJO類,也就是MVC的數據模型,實體類僅有屬性以及獲取和設置屬性的get和set方法,沒有事務處理方法。下面的代碼是實體類的樣例。

 

現在我們已經對MVC的架構有了大致瞭解,後面在設計人脈系統的過程中,我們會用到這些知識。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章