复习题-SpringBoot启动流程

本文详细描述了SpringBoot应用程序如何通过执行main方法中的`SpringApplication.run()`来启动,涉及WebApplicationType的选择、初始化器和监听器加载、配置环境设置、Spring容器创建等关键步骤。
摘要由CSDN通过智能技术生成

1. 执行main方法,运行SpringApplication.run();

2. 执行run方法前new 一个SpringApplication对象,这个对象的构造函数做了如下操作

a. 确定应用程序的类型(NONE   SERVLET   REACTIVE)

   

  1. SERVLET

    • 当将 WebApplicationType 设置为 SERVLET 时,表示应用程序是一个传统的基于 Servlet 的 Web 应用程序。
    • 这种类型适用于使用传统的 Servlet 编程模型来处理 Web 请求和构建 Web 应用程序的情况。
  2. REACTIVE

    • 当将 WebApplicationType 设置为 REACTIVE 时,表示应用程序是一个响应式的 Web 应用程序,支持响应式编程模型和 WebFlux。
    • 这种类型适用于构建基于响应式编程范例的 Web 应用程序,可以处理高并发、非阻塞的请求。
  3. NONE

    • 在之前的回答中提到的 NONE 选项是一个误解,实际上 Spring Boot 中并没有 WebApplicationType.NONE 这个选项。正确的选项包括 SERVLET 和 REACTIVE 两种。

 b. 加载所有的初始化器(ApplicationContextInitializer) 和监听器(ApplicationListener)

   通过springboot  和springboot-autoconfigure   spring.factories

c. 确定应用程序主类(main方法所在的类),以边后续扫描包使用

3. 运行run方法(进入了run方法的主体)

 a. 计时器(计算程序启动开始时间)

b. 设置headLess==true,--运行在服务器端,在没有显示器器和鼠标键盘的模式下照样可以工作,模拟输入输出设备功能(设置该应用程序,即使没有检测到显示器,也允许其启动.)

c. 创建并启动应用监听器 SpringApplicationRunlisteners

 d. 设置应用程序参数,即main方法的args

e.  加载springboot配置环境,包含jdk、maven等所需要的系统环境 并且加入到监听器中

 

 f. 创建加载程序应用上下文 ConfigurableApplicationContext 

g. 创建spring容器  实现自动化配置及bean实例化等操作

 

h. 计时结束,发布上下文准备就绪事件,运行结束

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值