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

相关推荐
程序猿DD16 小时前
Java 25 中的 6 个新特性解读
java·后端
稻草猫.16 小时前
文件 IO
java·笔记·后端·java-ee·idea
laopeng30116 小时前
基于Spring AI Deep Researcher Agent
java·人工智能·spring
子豪-中国机器人16 小时前
《C++ STL 基础入门》教案
java·开发语言
java_t_t16 小时前
集合工具类
java·集合
消失的旧时光-194316 小时前
ScheduledExecutorService
android·java·开发语言
勇闯逆流河16 小时前
【C++】用红黑树封装map与set
java·开发语言·数据结构·c++
Q_Q51100828517 小时前
python+uniapp基于微信小程序团购系统
spring boot·python·微信小程序·django·uni-app·node.js·php
SpiderPex17 小时前
论MyBatis和JPA权威性
java·mybatis
小猪咪piggy17 小时前
【微服务】(1) Spring Cloud 概述
java·spring cloud·微服务