- Spring MVC 的具体执行流程
1.SpringMVC 的 处理器映射器,即HandlerMapping
1.1) 获取HandlerExecutionChain对象的流程分析
2、SpringMVC的处理器适配器,根据1找到的处理器找到合适的适配器
适配器支持的种类有4类:
2.1) RequestMappingHandlerAdapter<----------->org.springframework.web.method.HandlerMethod
2.2)HttpRequestHandlerAdapter<----------->org.springframework.web.HttpRequestHandler
2.3)SimpleControllerHandlerAdapter<----------->org.springframework.web.servlet.mvc.Controller
2.4)SimpleServletHandlerAdapter<----------->javax.servlet.Servlet
3.执行处理器执行链路中所有拦截器的preHandler方法
拦截器的类型是实现 org.springframework.web.servlet.HandlerInterceptor接口的所有的类
如果不满足某个了拦截器类的前置方法,则执行所有拦截器的afterCompletion后置方法
4. 根据前面找到的适配器执行对应的方法
执行自己定义Controller的业务方法,返回org.springframework.web.servlet.ModelAndView结果
5.给ModelAndView设置 视图名称,用于匹配视图解析器
6.执行处理器执行链路中所有拦截器的postHandler方法
7.处理适配器返回的ModelAndView结果
7.1) 如果有异常,则处理异常
7.2) 根据ModelAndView的找到合适的视图解析器
7.3) 渲染视图
7.4) 返回结果到Web端