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

相关推荐
handsome12347 分钟前
java 8 在 idea 无法创建 java spring boot 项目的 变通解决办法
java·spring boot·intellij-idea·java8
大厂在职_xzG39 分钟前
Nexus简介及小白使用IDEA打包上传到Nexus3私服详细教程_ider2021 引用 nexus 上传
java·ide·intellij-idea
魔镜前的帅比1 小时前
Java 模块化(JPMS)解析
java·后端
Mr.W.T1 小时前
Java实战经验分享
java·开发语言
烛.照1031 小时前
rabbitMQ消息转换器
java·linux·rabbitmq
leo_hush1 小时前
java解析复杂json
java·前端·json
P7进阶路1 小时前
Spring Boot应用关闭分析
java·spring boot·后端
计算机-秋大田2 小时前
基于微信小程序的消防隐患在线举报系统设计与实现(LW+源码+讲解)
java·spring boot·后端·微信小程序·小程序·课程设计
极客先躯2 小时前
高级java每日一道面试题-2025年01月27日-框架篇[SpringBoot篇]-如何在Spring Boot启动的时候运行一些特定的代码?
java·spring boot·后端·初始化·启动执行
disgare2 小时前
设计模式——状态模式
java·设计模式·状态模式