Spring-MVC流程及源码解析(一) SpringMVC的初始化过程

若文中有任何不妥之处,请您帮我指出,大家一起交流学习,不吝赐教

本文讲述的方式是结合着源代码讲流程,所以源码会和流程一起前进

话不多说,直接进入正文(PS:原创,转载请注明出处 https://blog.csdn.net/F1004145107/article/details/78590847)

SpringMVC与Spring的集成

      首先,我想先说一下SpringMVC与Spring的集成,我个人非常喜欢这块部分,所以想分享给大家,当然如果你只是想看一下SpringMVC的具体执行流程,那么请直接跳过即可看我的下一篇文章即可

       毋庸置疑,SpringMVC的入口是DispatcherServlet,它的父类HttpBeanServlet(ps:请忽略这个绿色...我是个爱护眼睛的man)


      也就是上面这一大坨东西,进来就能看到一个非常明显的方法init(),根据我那12级的英语水平我判断这个应该是一个初始化的方法(我赌5毛的),一下这个是用来完成初始化的,而且使用的是final修饰符,说明这个方法并没有准备让子类去扩展,而try{}代码块中的代码,很明显,这就是个加载配置文件的,有兴趣的朋友点进去看一下就好.

      最后就是这个initServletBean()的方法了

  

      这么大一个protected修饰符以及没有方法体,很明显就是告诉你这个活我安排我儿子去干了.果然,我们在FramewordServlet中找到了这个方法

       

      简单的看一眼,除了红色框内的代码其余的都是在打印日志,说明只有这块在干活,initWebApplicationContext()这个从方法名上面看应该是在初始化容器,我们看一下

      

      顺着代码往下走,这里有一个onRefresh()的方法,老套路,我们直接看它的子类实现


     

    这个方法的实现就回到了DispatcherServlet中,上图的方法就是SpringMVC的策略(strategies)加载模式的具体实现

猜你喜欢

转载自blog.csdn.net/f1004145107/article/details/78590847
今日推荐