SpringMVC源码分析
我们知道SpringMVC实质上是对servlet进行封装,让我们的开发更加简便
1. 准备工作
我们知道springmvc在工作开始之前会加载默认的处理器映射器、处理器适配器、处理器解析器等
可以在spring-webmvc-5.0.6.RELEASE.jar源码包下查看DispatcherServlet.properties文件看有哪些处理器是springmvc默认加载的
2. 查看DispatcherServlet的继承体系:
我们发现DispatcherServlet最终还是继承与HttpServlet,那么我们就直接找service方法吧!
经打断点发现,最终会走向DispacherServlet的doDispacher方法!
此时请求进入DispatcherServlet,按照我们画图分析的结果应该是把请求交给处理器映射器HandlerMapping最终返回一个Handler
3. 查看HandlerMapping接口:
4. 寻找HandlerMapping实现类:
接下来进入处理器适配器HandlerAdapter执行handler最终返回一个ModelAndView
5. 查看HandlerAdapter接口:
6. 查看HandlerAdapter实现类:
.然后请求交给视图解析器进行解析最终返回一个View对象
7. 查看View接口:
8. 查看View实现类:
9. 查看View信息:
SpringMVC自带了拦截器请求的核心控制器.所以就可以在请求过来的时候,直接启动Spring框架
默认情况下,Spring容器是在核心控制器DispatcherServlet获得请求后才启动的.