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

相关推荐
学长毕设6 小时前
基于SpringBoot的实验室资产管理系统
java·spring boot·后端
zzu123zsw7 小时前
从臃肿的模板调用到声明式契约:深入 UniHttp 动态代理与多渠道生命周期扩展
java·spring boot·microsoft·unihttp
源码集结号8 小时前
云诊所门诊系统源码,基于SpringBoot+Vue.js架构,支持多租户设计与Docker容器化部署
java·spring boot·源码·医院信息系统·门诊系统·诊所系统
论文复现现场8 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
啃瓜子的松鼠8 小时前
泛微OAe9-后端二开异步调用
java
秋天的怀念_David9 小时前
第二十一夜 · 数字黑洞与西西弗斯的惩罚
java·程序人生·算法
外收内放9 小时前
Python基础语法练习题(73)
java·前端·python
Wang's Blog9 小时前
Java 项目实战: 交友项目 - 环信后台发送消息测试
java·交友
用户37215742613510 小时前
Java 操作 Word 脚注和尾注:添加、读取与删除
java
小嘉丶学长10 小时前
Day14 · 字典与集合
java·开发语言·网络·python·学习·1024程序员节