面试题-SpringCloud的启动流程

关键词

  • prepareEnvironment
  • BootstrapApplicationListener
  • BootStrap Context(启动应用上下文)
  • Environment中bootstrap属性

面试回答

  1. 引入SpringCloud相关组件后,均会引入一个spring-cloud-context 的依赖包,这个项目的META-INF/spring.factories 中会引入一个监听器(BootstrapApplicationListener)
  2. SpringBoot主应用上下文 启动流程中,会有一个prepareEnvironment阶段 ,该阶段完成后,会发布事件触发BootstrapApplicationListener监听逻辑
  3. BootstrapApplicationListener 会触发一个新的SpringBoot应用上下文(即Bootstrap Context)的启动流程
  4. 最终,Bootstrap Context 将会作为SpringBoot主应用上下文父应用上下文

BootstrapApplicationListener 发起Bootstrap Context启动流程之前,会向Environment 中放置一个bootstrap属性 。所以当Bootstrap Context 在走SpringBoot启动流程时**,虽然也会走到 prepareEnvironment阶段并触发 BootstrapApplicationListener的监听逻辑,但是此时 BootstrapApplicationListener由于判断到 Environment中存在bootstrap属性,**就会跳过剩余逻辑。

相关推荐
海边的Kurisu15 小时前
苍穹外卖日记 | Day1 苍穹外卖概述、开发环境搭建、接口文档
java
C雨后彩虹19 小时前
任务最优调度
java·数据结构·算法·华为·面试
heartbeat..19 小时前
Spring AOP 全面详解(通俗易懂 + 核心知识点 + 完整案例)
java·数据库·spring·aop
Jing_jing_X19 小时前
AI分析不同阶层思维 二:Spring 的事务在什么情况下会失效?
java·spring·架构·提升·薪资
元Y亨H21 小时前
Nacos - 服务发现
java·微服务
微露清风21 小时前
系统性学习C++-第十八讲-封装红黑树实现myset与mymap
java·c++·学习
dasi022721 小时前
Java趣闻
java
阿波罗尼亚1 天前
Tcp SSE Utils
android·java·tcp/ip
susu10830189111 天前
springboot3.5.8整合minio8.5.9
java·springboot
不知道累,只知道类1 天前
深入理解 Java 虚拟线程 (Project Loom)
java·开发语言