转载 :http://www.itdaan.com/imgs/8/3/0/8/89/fbe12fd7f0c630e2ca2f90d6709eea0f.jpe
这是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接口 --异常处理