面试题-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属性,**就会跳过剩余逻辑。

相关推荐
曹牧几秒前
Tomcat 启动内存的设置
java·tomcat
七夜zippoe1 分钟前
云原生Java应用部署:将Spring Boot应用迁移至Kubernetes完整指南
java·spring boot·docker·云原生·kuberbertes
ywf12153 分钟前
java进阶1——JVM
java·开发语言·jvm
鱼鳞_4 分钟前
Java学习笔记_Day18(数据结构)
java·笔记·学习
mygljx3 小时前
SpringBoot+Mybatis-plus实现分页查询(一看就会)
spring boot·mybatis·状态模式
无巧不成书02188 小时前
30分钟入门Java:从历史到Hello World的小白指南
java·开发语言
zs宝来了10 小时前
Playwright 自动发布 CSDN 的完整实践
java
彭于晏Yan11 小时前
Redisson分布式锁
spring boot·redis·分布式
吴声子夜歌11 小时前
TypeScript——基础类型(三)
java·linux·typescript