(面试)Springboot的启动流程

在我们springboot项目启动的时候,会构建一个SpringbootApplication的实例,然后调用这个实例的run()方法,在调用run()方法之前,也就是构建SpringbootApplicatiion的时候,会进行一些初始化的操作:

  1. 将传入的启动类放入到LinkedHashSet中
  2. 判断是否为web环境,若存在ConfigurableWebApplicationContext则是web环境
  3. 创建并初始化ApplicationInitializer
  4. 创建并初始化ApplicationListener
  5. 初始化主类mainApplication

然后执行run()方法:

  1. 创建一个StopWatch计时器
  2. 配置awt系统属性
  3. 获取SpringbootApplicationListeners
  4. 启动SpringbootApplicationListeners
  5. 创建ApplicationArguments
  6. 创建并初始化ConfigurableEnvironment
  7. 配置忽略的bean信息
  8. 打印Banner(项目启动的时候的图标)
  9. 创建ConfigurableApplicationContext
  10. 准备ConfigurableApplicationContext
  11. 刷新ConfigurableApplicationContext
  12. 容器刷新后的动作
  13. SpringbootApplicationRunListner发布finish事件
  14. 计时器停止计时
  15. 启动所有的监视器
  16. 将应用上下文ConfigurableApplicationContext传递给每一个监视器

(面试)Springboot的启动流程相关推荐

  1. springboot完整启动流程

    springboot的完整启动流程 文章目录 springboot的完整启动流程 eg: 计时 接着创建引导上下文(Context环境) 进入createBootstrapContext()中查看源代 ...

  2. springboot 的启动流程

    一.通过SpringFactoriesLoader获取系统中所有的SpringApplicationRunListener(备注:目前系统中只有这一个EventPublishingRunListene ...

  3. SPRINGBOOT启动流程及其原理

    Spring Boot.Spring MVC 和 Spring 有什么区别? 分别描述各自的特征: Spring 框架就像一个家族,有众多衍生产品例如 boot.security.jpa等等:但他们的 ...

  4. springboot启动流程

    一句话总结:在context的refresh方法中,需要注册bean definition,实例化bean.在加载bean defintion的时候使用ConfigurationClassParser ...

  5. Springboot启动流程简述

    Springboot提高了开发效率,简化了配置,往往使用一些注解就可以使项目跑起来,下面理一下Springboot的启动流程.Springboot版本:2.2.4.RELEASE 以下是一个常见的Sp ...

  6. Springboot启动流程分析-1——脚手架工程和启动流程

    一.创建springboot脚手架工程 springboot官方提供一个web网页用于构建脚手架工程 https://start.spring.io Project选项: Java生态体系中有三大构建 ...

  7. 简单清晰的SpringBoot启动流程

    文章目录 前言 一.创建SpringApplication对象 二.执行 run() 方法 总结 前言 SpringBoot启动流程总体分为两步,第一步先SpringApplication对象,第二步 ...

  8. SpringBoot 启动流程(细节拉满)

    SpringBoot 启动流程(细节拉满) 网上搜了一下,这方面网上的资料不少,有些从@SpringBootApplication来入手讲.个人不能苟同吧,讲一讲我的理解.还有一些讲的比较笼统,我来写 ...

  9. 【SpringBoot】面试必杀技-泰山陨石坠,SpringBoot中主启动类的run方法启动流程是什么?

    开头导语由Chatgpt完成 当今互联网行业中,Java后端开发岗位的竞争异常激烈,对于面试者来说,掌握一些技巧和知识点将有助于脱颖而出.而对于SpringBoot框架的使用和运行机制,更是Java后 ...

最新文章

  1. postgresql主从备份_基于PG12.2实现主从异步流复制及主从切换教程(下)
  2. 如何运行你的Android程序?
  3. OpenGL浮雕效果
  4. python数值运算答案_笨方法学Python 习题3:数字和数学计算
  5. 330 div+css Experience
  6. watir6.0 -selenium3新时代的watir-webdriver
  7. java中的重量级与轻量级概念
  8. 没网可以用python吗_在没有网络的情况下能自学python吗?
  9. php处理html数据类型,PHP html_entity_decode() 函数 | 菜鸟教程
  10. PSD分层模板素材|电商页面这样设计,转化率成倍提高!
  11. SQL SERVER 高效存储过程分页(Max/Min方法)
  12. HDU2551 竹青遍野【数学计算+水题】
  13. android卸载弹出窗口,卸载Android app弹出浏览器的一种实现
  14. centos7安装python2.6_centos7.2下yum和python重装问题及解决方法
  15. Java实现一个简易联网坦克对战小游戏
  16. FPGA控制AD7606进行数据采集
  17. “七夕情歌会 缘聚红豆峡” 红豆峡第15届情歌会圆满结束
  18. 【Unity基础知识之一】 Unity支持 IOS 64-BIT
  19. [WTL/ATL]_[Gdiplus]_[绘制虚线并设置破折号空格的宽度]
  20. BCD编码和ASCII码

热门文章

  1. 《刷新》精髓:微软第三任CEO萨提亚•纳德拉重新发现微软灵魂的传奇历程,给了我们普通人哪些启示?
  2. 【深入理解JVM】:HotSpot垃圾收集器
  3. Android 项目开发填坑记 - 谷歌商店上架被拒 Apps On Device
  4. 从新型冠状病毒想到清单革命
  5. JVM底层原理之标配参数、X和XX参数
  6. 也许风停了,我们才能心平气和的看待一家公司
  7. 图像像素类型转换与归一化
  8. 钉钉ppt放映显示备注_PPT的备注怎么用,放映PPT时如何显示备注 来看看吧
  9. 计算机的程序代码是储存在什么中的,计算机的一切程序和数据都是以什么情势贮存?...
  10. (NDIS5.0)协议驱动Ndisprot源码解读