美文网首页程序员
springmvc源码分析--一起看源码

springmvc源码分析--一起看源码

作者: WinkTink | 来源:发表于2019-05-22 08:53 被阅读0次

        我们先从DispatcherServlet(springmvc的核心控制器就是DispatcherServlet)开始。先看下DispatcherServlet的继承关系:

DispatcherSercle

1.我们先从HttpServlet开始看,翻了一下,没看到什么相关的,下面是HTTPServler的一些子类

2. 接下来我们去看一下HttpServletBean里边,有些什么?

HttpServletBean.init()

3. HttpServletBean ---->>> init(),还是被final修饰的(不可被继承哦),它都初始化了些什么,看上图是做了些配置的加载,之后重点来了,initServletBean(),这个函数干了啥?一起去看看吧~

HttpServletBean---》》》HttpServletBean

4. 看来是让他的子类去做了具体的实现,那我们去FrameworkServlet下的httpServ;etBean有些什么?

FrameworkServlet---》》》initServletBean()

5.  这时候才是真正的开始容器的初始化。好了我们进入initWebApplicationContext()这个方法:

FrameworkServlet---》》》initWebApplicationContext()

6.FrameworkServlet类 ,以第一步是首先要去获取parent父容器也就是spring的容器。然后开始根据父容器开始创建springmvc的容器。这里我们再进入下一步之前,我觉着有必要进入到createWebApplicationContext(rootContext)里边看看:

FrameworkServlet---》》》createWebApplicationContext

7. 将Servlet与Spring容器上下文关联。其实也就是初始化FrameworkServlet的属性webApplicationContext,这个属性代表SpringMVC上下文,它有个父类上下文,既web.xml中配置的ContextLoaderListener监听器初始化的容器上下文。接下来进入FrameworkServlet---》》》initServletBean()>>>onRefresh(wac)

FrameworkServlet---》》》initServletBean()>>>onRefresh(wac)

8. 接着进入到前端控制器 DispatcherServlet,然后进入onRefresh()方法也就是他的子类dispatcherServlet中取按照策略模式的方式对springmvc中的具体的每个模块进行初始化

DispatcherServlet>>>onRefresh(wac) >>>initStrategies()

9. 最后呢?就是 DispatcherServlet类 初始化各个功能的实现类。比如异常处理、视图处理、请求映射处理等。

注释

相关文章

网友评论

    本文标题:springmvc源码分析--一起看源码

    本文链接:https://www.haomeiwen.com/subject/gqrszqtx.html