SpringMVC工作原理

雖然用了很長時間的SpringMVC這個框架,自己感覺運用的很6,可是近期面試卻發(fā)現(xiàn)了一個很可怕的問題,什么是SpringMVC?SpringMVC的工作原理是什么?SpringMVC的優(yōu)缺點有哪些?以前運用的時候,真的沒有考慮到這些問題!

現(xiàn)在我們來探討一下SpringMVC。

1.什么是SpringMVC?

答:Spring是一個模塊,基于MVC的一個框架。MVC是一種設(shè)計模式。M代表model;V代表view;C代表controller。M指的是模型,即dao層和service層,V指的是視圖,即jsp html 等。C指的是controller,即控制器。

2.SpringMVC的工作原理是什么?

答:用戶發(fā)送請求由前置控制器DispatcherServlet來決定哪一個頁面的控制器進(jìn)行處理并把請求委托給它,在由HandlerMapping將請求映射為HandlerExecutionChain對象(包含Handler處理器對象(頁面控制器),多個HandlerInterceptor對象即攔截器),在返回給DispatcherServlet,DispatcherServlet在次發(fā)送請求給HandlerAdapter,HandlerAdapter將處理器包裝為適配器,調(diào)用處理器相應(yīng)功能處理方法,Handler返回ModelAnView給HandlerAdapter,HandlerAdapter發(fā)送給DispatcherServlet進(jìn)行視圖的解析(ViewResolver),ViewResolver將邏輯視圖解析為具體的視圖,返回給DispatcherServlet,在進(jìn)行視圖的渲染(View),返回給DispatcherServlet,最后通過DispatcherServlet將視圖返回給用戶。


3.分工職責(zé)

? ? 3.1 前置控制器DispatcherServlet

? ? ? ? ? ? 作用:接收請求 ?返回結(jié)果

? ? 3.2 映射處理器 HandlerMapping

? ? ? ? ? 作用:根據(jù)請求映射為HandlerExecutionChain對象,查找對應(yīng)的Handler

? ? 3.3 處理器適配 HandlerAdapter

? ? ? ? ? 作用:調(diào)用處理器相對應(yīng)的處理方法,返回ViewAndModel

? ? 3.4 ?視圖解析器 ViewResolver

? ? 3.5 ?視圖的渲染 View

4.SpringMVC的優(yōu)缺點?

答:1.方便解耦,簡化開發(fā),職責(zé)鮮明,分工明確

? ? ? ? 2.AOP的很好支持,方便面向切面編程

? ? ? ? 3.對主流的框架提供了很好的集成支持

? ? ? ? 4.Spring屬于低侵入,代碼污染極低

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容