45 springmvc和springboot的启动过程

问题:

简述springmvc和springboot的启动过程

答案:

  • springmvc的启动过程:
    首先,任何一个常规web应用,都会在web容器中启动,web容器提供其一个全局的上下文环境即ServletContext。在web.xml中会提供有ContextLoaderListener,这就是父容器,负责加载service层及dao层,可以取默认路径的配置,也可以由context-param去指定配置路径。在web容器启动时,会触发容器初始化事件,此时contextLoaderListener会监听到这个事件,其contextInitialized方法会被调用,在这个方法中,spring会初始化一个启动上下文,被称为根上下文,即 WebApplicationContext;然后,contextLoaderListener监听器初始化完毕后,开始初始化web.xml中配置的Servlet,这个servlet可以配置多个,以最常见的DispatcherServlet为例,这个servlet实际上是一个标准的前端控制器,也被称为子容器,用以转发、匹配、处理每个servlet请求。DispatcherServlet上下文在初始化的时候会建立自己的IoC上下文,用以持有spring mvc相关的bean,负责加载controller层。综上,父容器先启动,子容器后启动;子容器能访问父容器,父容器不能访问子容器。
  • springboot的启动过程:
    springboot启动流程主要分三个部分:(1)SpringApplication的初始化模块配置一些基本的环境变量、资源、构造器、监听器;(2)应用具体的启动方案包括启动流程的监听模块、加载配置环境模块、及核心的创建上下文模块;(3)自动化配置模块完成自动配置,具体启动过程如下:
1、新建module,在主程序类加入断点,启动springboot
2、首先进入SpringAplication类run方法
3、run方法新建SpringApplication对象
4、SpringApplication对象的run方法,首先创建并启动计时监控类
5、接着通过configureHeadlessProperty设置java.awt.headless的值
6、接着调用getRunListeners创建所有spring监听器
7、接着DefaultApplicationArguments初始化应用应用参数
8、接着prepareEnvironment根据运行监听器和参数准备spring环境
9、接着调用createApplicationContext方法创建应用上下文
10、通过prepareContext准备应用上下文
11、refreshContext方法刷新上下文
12、调用stop方法停止计时监控器类
13、调用started发布应用上下文启动完成事件
14、callRunners方法执行所有runner运行器
15、调用running发布应用上下文就绪事件
16、最后返回应用上下文
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值