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

相关推荐
萌新小白的逆袭19 分钟前
《Maven 核心基础笔记(第一天)》
java·开发语言·spring
一念&21 分钟前
Java泛型
java
掉鱼的猫30 分钟前
Solon 整合 LiteFlow 规则引擎:概念与实战
java·workflow
她说..31 分钟前
Stream API流学习总结
java
橙序员小站40 分钟前
JDK17 前后写法对比:差点没认出是 Java
java·后端
秋千码途40 分钟前
小架构step系列26:Spring提供的validator
java·spring·架构
肖哥弹架构41 分钟前
Spring JDBCTemplate 十大性能优化秘籍:从慢如蜗牛到快如闪电!
java·后端·程序员
苦学编程的谢44 分钟前
MyBatis_3
java·开发语言·后端·mybatis
fouryears_234171 小时前
什么是JSON,如何与Java对象转化
java·spring boot·spring·json