当前位置: 首页 > news >正文

网站 只收录首页杭州上城区抖音seo有多好

网站 只收录首页,杭州上城区抖音seo有多好,如何建立网站建设规划,做游戏视频网站委托模式的体现,在初始化醒目的时候Spring MVC为我们提供了一个DispatcherServlet,映射了所有的路径,所有的请求都会先到达这里然后被转发到具体的Controller 进行处理,此文来探索一下,DispatcherServlet 初始化的时候…

委托模式的体现,在初始化醒目的时候Spring MVC为我们提供了一个DispatcherServlet,映射了所有的路径,所有的请求都会先到达这里然后被转发到具体的Controller 进行处理,此文来探索一下,DispatcherServlet 初始化的时候是怎么和Spring IOC打通的。

DispatcherServlet初始化

初始化只在首次加载的时候进行初始化,也就是说我们的DispatcherServlet是单例的。
HttpServletBean#init()
在这里插入图片描述
在这里插入图片描述
可以看到创建了一个WebApplicationContext,在里面调用了onRefresh方法,那我们看看onRefresh做了什么事情呢?
在这里插入图片描述
我们继续跟进去发现,初始化其实就是IOC容器去获得这个Bean对象,这个时候我产生了一个疑问,这个启动流程是什么时候和IOC容器打通的呢?并且断点到这里的时候Context 是AnnotationConfigServletWebServerApplicationContext,哪里来的,怎么就能获取Bean呢?
在这里插入图片描述
啊啊啊,真是反复调试了好久终于算是理清楚了整个流程,首先我们来看SpringApplication#run方法:
在这里插入图片描述
看到了吧,这里创建Context的时候可大有文章,继续点进去看:
在这里插入图片描述
看到了没有,这里有个ApplicationType,那么这个值又是哪里来的?有那些值?

在这里插入图片描述
好家伙是推断出来的,推断就是根据类名来判断的,那有哪些值呢?嘿嘿看到了吧,有三种值。
在这里插入图片描述
好吧,我知道了这一步是判断成了Servlet类型创建了这个类型的AnnotationConfigServletWebServerApplicationContext,那然后呢?别急让我们继续跟踪一波源码呀,我们直接看下面刷新方法:
在这里插入图片描述
在这里插入图片描述
哇偶最终是调用的Context的刷新方法呢,那我们继续看看呗,我尼玛好家伙这又父类去了:
在这里插入图片描述
那么父类是谁?尽然是AbstractApplicationContext 索达斯内,好家伙熟悉了吧,想必跟踪过Spring源码的同学可太熟悉这个类了,原来如此呀,这不就和Spring IOC打通了嘛。
在这里插入图片描述

我们继续看,刷新之后干了什么?看到了吧创建了WebServer。
在这里插入图片描述
好,没完呢, 到这只是回答了为什么和IOC容器打通了,那么为什么FrameFrameWrork#initWebApplicationContext这方法里面红框里的代码执行了以后就拿到了刚刚创创建的AnnotationConfigServletWebServerApplicationContext呢?
在这里插入图片描述
好我们继续看源码,关键就在这里了是通过ServletContext#getAttribute得到的,且attrName = org.springframework.web.context.WebApplicationContext.ROOT,那么是什么时候设置进去的,那既然有get,那有没有set方法呢?于是找到了setAttribute这个方法:
在这里插入图片描述
那我们找到这个方法在哪里用了?用到的地方太多了,那么直接在接口上打一个断点,并且当属性是org.springframework.web.context.WebApplicationContext.ROOT不就可以找到谁调用了这个方法嘛,机智如我呀。
在这里插入图片描述
哈哈哈哈,终于被我发现了,好家伙,看堆栈是通过prepareWebApplicationContext这个调用过来的:

在这里插入图片描述
ServletWebServerApplicationContext#prepareWebApplicationContext在这里插入图片描述

但是这个方法又是被谁调用了呢?那么我们继续追呗。
在这里插入图片描述
芜湖,getSelfInitializer是在创建Web容器的时候调用的,到这里逻辑闭环了不是,这不就是创建WebServer的时候调用的吗?
在这里插入图片描述
哈哈哈哈,小样拿下。跟踪源码经常晕头转向但是,梳理清楚流程以后还是蛮开心的。好了今天的文章到此结束,能力不足水平有限欢迎批评指正,比心么么。

http://www.15wanjia.com/news/169898.html

相关文章:

  • 郑州建设银行网站房贷网点在哪海淀企业型网站建设
  • 怎样做信息收费网站自媒体平台排行榜前十名
  • 浙江省建设职业技术学院网站开发网站手机版
  • 免费公司注册网站传媒公司网站
  • ps模板下载网站深圳专业网站建设产品运营之中的广度讲解
  • 网站建设果麦科技上海网站建设品
  • 做网站很简单网站建设策划书风险控制
  • 高端网站设计推广v信haotg8电商设计和平面设计哪个好
  • 腾讯有做淘宝客网站吗阿里巴巴上怎样做自己的网站
  • 网站建设 中企动力西安全网营销实例
  • 网站建设彩铃语拖拽式网站
  • 企业宣传注册哪些论坛 网站好网站描述更改
  • 天津做网站优化公司北京天仪建设工程质量检测所网站6
  • php网站开发建设国内网页做的好看的网站
  • 网站静态图怎么做建材做网站好吗
  • 海南省两学一做网站西安到北京高铁几小时
  • 那里可以建设网站十堰h5响应式网站
  • 工作室网站模板青岛网站建设
  • 如何找到外包推广公司seo全称
  • 百度地图 企业网站网络营销方式的思维导图
  • 图书馆网站建设网站的目的wordpress 自动推送百度
  • 网站logo设计流程发布文章后马上更新网站主页
  • 上海正规做网站公司报价北风风淘网站开发
  • 无后台基础怎么建设网站软件商店2023
  • 游戏网站做关键字夜来香广州网站
  • 展厅设计制作网站金华电子商务网站建设
  • 哪种网站名称容易通过备案审核蚌埠北京网站建设
  • 自学做网站要多久室内装修设计上海
  • 网站开发技术知识甘肃省广电网络公司网站
  • 电商网站建设课程设计实验报告APP网站建设什么用处