Spring Boot 源码研读之创建DefaultBootstrapContext并执行BootstrapRegistryInitializer.initialize()
上一篇文章我们介绍了 SpringApplication 对象的创建过程在 SpringApplication 创建好后会执行对应的 run() 方法run() 方法的第一个重要步骤是创建对应的 DefaultBootstrapContext 默认启动上下文对象顾名思义就是构建一个启动上下文对象并在启动阶段做一些事情。让我来看看DefaultBootstrapContext创建的源码DefaultBootstrapContext bootstrapContext createBootstrapContext(); //... private DefaultBootstrapContext createBootstrapContext() { DefaultBootstrapContext bootstrapContext new DefaultBootstrapContext(); this.bootstrapRegistryInitializers.forEach((initializer) - initializer.initialize(bootstrapContext)); return bootstrapContext; }通过源码可以看出DefaultBootstrapContext创建过程比较简单直接实例化一个DefaultBootstrapContext对象并执行所有BootstrapRegistryInitializer实现类的initialize()方法。通过debug源码我们也可以看出目前 Spring boot 并没有BootstrapRegistryInitializer实现类因此createBootstrapContext()方法只是创建了一个DefaultBootstrapContext对象并返回。DefaultBootstrapContext类结构如下图所示注spring boot 版本为3.2.3