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

SpringBoot面试题09-SpringBoot启动流程

一、启动流程一览

二、对应启动代码

三、结构型答案总结

问:请聊一聊 SpringBoot 的启动流程?

答:

总: SpringBoot 启动,基本本质就是加载各种配置信息,然后初始化 IOC 容器返还

分: 在其启动的过程中会做这么几个事情。

首先,当我们在启动类执行 SpringApplication.run 运行这行代码的时候,在它的构造方法内部其实会做两件事情:

  1. 创建 SpringApplication 对象;

  2. 执行 run 方法。

其次,在创建 SpringApplication 对象的时候,在它的构造方法内部主要做 3 个事情:

  1. 确认 web 应用类型,一般情况下是 Servlet 类型,这种类型的应用,将来会自动启动一个 Tomcat。

  2. spring.factories 配置文件中,加载默认的 ApplicationContextInitializer 和 ApplicationListener。

  3. 记录当前用的主启动类(项目中被@SpringBootApplicaiton注解的类),将来做初始化使用。


最后,对象创建完了以后,再调用该对象的 run 方法,在该方法内部主要做 4 个事情:

  1. 准备 Environment 对象,它里面会封装一些当前应用运行环境的参数,比如环境变量等等。

  2. 实例化容器,这里仅仅只是创建 ApplicationContext 对象。

  3. 容器创建好了以后,会为容器做一些准备工作,比如为容器设置 Environment、BeanFactoryPostProcessor / 后置处理器,并加载主类对应的 BeanDefinition。

  4. 刷新容器,就是我们常说的 refresh,在这里会真正的创建 Bean 实例

总: 总结一下我们说的,其实 SpringBoot 启动的时候核心就两步:

  • 创建 SpringApplication 对象

  • 以及 run 方法的调用

在 run 方法中会真正的实例化容器,并创建容器中需要的 Bean 实例,最终返回。

http://www.dtcms.com/a/598276.html

相关文章:

  • 网站开发项目推荐怎么样自己做一个网站
  • seo整站优化哪家好做洗衣液的企业网站
  • 北京论坛网站建设wordpress可视化界面
  • 2.10 实践练习:训练意图识别模型并部署为 API
  • server 2008 iis部署网站2345网址导航是什么公司的
  • 【穿越Effective C++】条款17:以独立语句将newed对象置入智能指针——异常安全的智能指针初始化
  • 安全月考评哪个网站做哪里做网站最好网站
  • 路由器端口转发做网站访问量wordpress add_action do_action
  • CSS中transition属性详解
  • C# 求取两个整数的最小公倍数
  • 廊坊中小企业网站制作da面板安装wordpress
  • Coinbase Launchpad 上线:项目方如何借势打造更强的发币策略?
  • 如何向百度举报网站cms企业网站源码
  • 网站请人做的 域名自己注册的 知道网站后台 怎么挂自己的服务器做网站的费用进什么科目
  • 网站建设源文件wordpress qiniu-uploader 使用
  • 网站备案所需材料wordpress 主题汉化
  • 自己电脑做电影网站tomcat做网站
  • Linux学习:进程的控制
  • 【计算思维】蓝桥杯STEMA 科技素养考试真题及解析 6
  • 界面美观和可用性冲突时怎么办
  • 做网站能自己找服务器吗基础型网站价格
  • 网站建设哪家最专业2021网页游戏
  • 营销网站建设多少钱网站建设分享
  • 模板网站建设清单湘潭做网站广告的公司
  • 【SOMEIP】【R24-11】【需求翻译】[RS_SOMEIP_00005]-[RS_SOMEIP_00007]
  • 在安卓源码编译中,如何修改配置文件来增加L2TP功能
  • Netty详解-02
  • 快手网站题怎么做做直播哪个网站好
  • 脚本:使用AWR快照原始数据评估存储性能
  • 嵌入式C语言中指针详解