SpringMVC的原理
1、 客户端用户发送请求至前端控制器DispatcherServlet。
2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。
3、 HandlerMapping处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找), 生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
4、 DispatcherServlet调用HandlerAdapter处理器适配器,HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。
5、 Controller控制器执行完成返回ModelAndView,HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。
6、 DispatcherServlet前端控制器将ModelAndView传给ViewReslover视图解析器。
7、 ViewReslover解析后返回具体View。
8、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中),并返回给客户端用户。
SpringMVC的流程图
![图片来源于网络](https://i-blog.csdnimg.cn/blog_migrate/1875d9ec07ed251e6ffa2b4db7ebb98a.png)
源码分析
1. SpringMVC里面有个主要的类(DispatcherServlet),使用了适配器模式
2. 整个处理流程有三大组件:处理器映射器,处理器适配器,视图解析器
DispatcherServlet类
![](https://i-blog.csdnimg.cn/blog_migrate/55f7d01a0f1e27fced07917436247015.png)
DispatcherServlet类里面的doDispatch方法
![里面用到了适配器模式,自己体会!!!](https://i-blog.csdnimg.cn/blog_migrate/9e60eb8119cbfbb0164d40375c9a12ae.png)