轉載 :http://blog.csdn.net/gufachongyang02/article/details/43836105
這是spring3 mvc的核心流程圖:
SpirngMVC的第一個擴展點
HandlerMapping接口 -- 處理請求的映射
保存請求url到具體的方法的映射關系,,我們可以編寫任意的HandlerMapping實現類,依據任何策略來決定一個web請求到HandlerExecutionChain對象的生成。
SpirngMVC的第二個擴展點
HandlerInterceptor 接口--攔截器
HandlerInterceptor,通過自定義攔截器,我們可以在一個請求被真正處理之前、請求被處理但還沒輸出到響應中、請求已經被輸出到響應中之后這三個時間點去做任何我們想要做的事情。
SpirngMVC的第三個擴展點
HandlerAdapter
真正調用
SpirngMVC的第四個擴展點
HandlerMethodArgumentResolver -- 處理方法參數解釋綁定器
調用controller方法之前,對方法參數進行解釋綁定(實現WebArgumentResolver接口,spring3.1以后推薦使用HandlerMethodArgumentResolver);
SpirngMVC的第五個擴展點
Converter -- 類型轉換器
參數綁定時springmvc會對從前端傳來的參數自動轉化成方法定義的參數的類型,我們可自己定義此接口來實現自己的類型的轉換
SpirngMVC的第六個擴展點
ViewResolver
完成從ModelAndView到真正的視圖的過程,ViewResolver接口是在DispatcherServlet中進行調用的,當DispatcherServlet調用完Controller后,會得到一個ModelAndView對象,然后DispatcherServlet會調用render方法進行視圖渲染。
SpringMVC提供的第七個擴展點:
HandlerExceptionResolver接口 --異常處理