谈谈SpringMVC的工作流程
- 用户发送请求到达前端控制器(DispatcherServlet);
- DispatcherServlet调用处理器映射器(HandlerMapping);
- 处理器映射器(HandlerMapping)找到具体的处理器执行链(HandlerExecutionChain);
- DispatcherServlet调用处理器适配器(handlerAdapter);
- 处理器适配器(handlerAdapter)经过适配后调用具体的处理器(handler);
- 具体处理器(handler)执行返回一个ModelAndView;
- 处理器适配器(handlerAdapter)将ModelAndView返回给DispatcherServlet
- DispatcherServlet将ModelAndView传递给视图解析器;
- 视图解析器对mv解析后返回具体的view;
- DispatcherServlet根据返回的view进行渲染;
- DispatcherServlet响应用户。
源码角度看SpringMVC工作原理
通过SpringMVC工作流程可以看出,DispatcherServlet在其中起了非常重要的作用。接下来我们从源码的角度来看DispatcherServlet在SpringMVC工作原理。
SpringBoot项目为例,首先在加载bean的时候会加载DispatcherServletAutoConfiguration的配置类,里面主要初始化了DispatcherServlet。
DispatcherServlet在初始化过程中首先会加载默认的策略配置,比如处理器映射器、处理器适配器、视图解析器、异常处理解析器等。
initStrategies方法初始化策略配置
请求过来调用doDispatch方法
请求返回数据,流程完成。