SpringMVC原理&MVC設計思想
什麼是MVC?
MVC是一種架構模式 --- 程式分層,分工合作,既相互獨立,又協同工作
MVC是一種思考方式 --- 需要將什麼資訊展示給使用者? 如何佈局? 呼叫哪些業務邏輯?
MVC流程圖如下圖所示:
MVC核心思想:業務資料抽取同業務資料實現相分離
總結:
模型層(M) 業務資料的資訊表示,關注支撐業務的資訊構成,通常是多個業務實體的組合
檢視層(V) 為使用者提供UI,重點關注資料的呈現
控制器(C) 接受使用者請求,並呼叫相應的模型處理
(相當於一個總調配中心,有什麼需求,就去呼叫相應模型進行處理,最後通過檢視給使用者進行展示)
SpringMVC的原理:
1 首先使用者發出請求,請求到達SpringMVC的前端控制器(DispatcherServlet),
2 前端控制器根據使用者的url,請求處理器對映器(HandlerMapping)查詢匹配該url的handler,並返回一個執行鏈(HandlerExecutionChain),
3 前端控制器再請求處理器介面卡(HandlerAdapter)呼叫相應的handler進行處理並返回給前端控制器一modelAndView,
4 前端控制器再請求檢視解析器(ViewResolver)對返回的邏輯檢視進行解析,
5 最後前端控制器將返回的檢視進行渲染並把資料裝入到request域,返回給使用者。
注:DispatcherServlet作為springMVC的前端控制器,負責接收使用者的請求並根據使用者的請求返回相應的檢視給使用者(分發排程)
補充:
為什麼叫前端控制器?前端又是什麼?
舉個例子:假如你去醫院看病,通過向分診臺的醫院描述自己的病情,就可以得到醫生的指導具體去看外科、內科或者神經科等等,這裡我們的分診臺就扮演著前端控制器(Dispatcher)的角色,也叫做排程器,而各個科室就扮演著控制器(Controller)的角色,因為分診臺是在具體各個科室之前,所以這個模式就叫做前端控制器。