1. 依赖组件
  • BootstrapApplicationListener:处理ApplicationEnvironmentPreparedEvent时创建了一个以bootstrapImportSelectorConfiguration为source的SpringApplication
  • bootstrapImportSelectorConfiguration:加载spring.factories中以
    org.springframework.cloud.bootstrap.BootstrapConfiguration为key的值
  • PropertySourceBootstrapConfiguration:实现了ApplicationContextInitializer接口读取并加载nacos配置
2. 流程
通过读取spring-cloud-context.jar spring.factories
向SpringApplication添加BootstrapApplicationListener
BootstrapApplicationListener处理ApplicationEnvironmentPreparedEvent时
创建了一个以bootstrapImportSelectorConfiguration为source的SpringApplication
SpringApplication 启动并添加bootstrapImportSelectorConfiguration bean定义
在refreshContext阶段通过ConfigurationClassPostProcessor解析bootstrapImportSelectorConfiguration
读取spring-cloud-context.jar spring.factories中加载PropertySourceBootstrapConfiguration
BootstrapApplicationListener将PropertySourceBootstrapConfiguration 添加到项目启动类SpringApplication中
在项目启动类SpringApplication调用ApplicationContextInitializer阶段,
调用PropertySourceBootstrapConfiguration
PropertySourceBootstrapConfiguration读取并加载nacos配置

更多推荐