SpringMVC源码分析

我们知道SpringMVC实质上是对servlet进行封装,让我们的开发更加简便

1. 准备工作

我们知道springmvc在工作开始之前会加载默认的处理器映射器、处理器适配器、处理器解析器等

可以在spring-webmvc-5.0.6.RELEASE.jar源码包下查看DispatcherServlet.properties文件看有哪些处理器是springmvc默认加载的

SpringMVC源码分析

 

SpringMVC源码分析

 

2. 查看DispatcherServlet的继承体系:SpringMVC源码分析

 

我们发现DispatcherServlet最终还是继承与HttpServlet,那么我们就直接找service方法吧!

经打断点发现,最终会走向DispacherServlet的doDispacher方法!SpringMVC源码分析

此时请求进入DispatcherServlet,按照我们画图分析的结果应该是把请求交给处理器映射器HandlerMapping最终返回一个Handler

3. 查看HandlerMapping接口:

SpringMVC源码分析

 

4. 寻找HandlerMapping实现类:SpringMVC源码分析

 

SpringMVC源码分析

接下来进入处理器适配器HandlerAdapter执行handler最终返回一个ModelAndView

5. 查看HandlerAdapter接口:

SpringMVC源码分析

 

6. 查看HandlerAdapter实现类:

SpringMVC源码分析

SpringMVC源码分析

.然后请求交给视图解析器进行解析最终返回一个View对象

7. 查看View接口:

SpringMVC源码分析

 

8. 查看View实现类:

 

SpringMVC源码分析

 

SpringMVC源码分析

 

9. 查看View信息:

 

 

SpringMVC源码分析

 

SpringMVC自带了拦截器请求的核心控制器.所以就可以在请求过来的时候,直接启动Spring框架

默认情况下,Spring容器是在核心控制器DispatcherServlet获得请求后才启动的.