启动初始化
SpringApplication.prepareContext

 
applyInitializers
回调ApplicationContextInitializer的initialize方法
 
getInitializers()从applicationContext获取List<ApplicationContextInitializer<?>> initializers
 
 这个集合是通过SpringApplication的构造方法初始化
 同样在这里也会初始化加载ApplicationListener事件监听器
 
PropertySourceBootstrapConfiguration.initialize
遍历propertySourceLocators,执行locator的locateCollection方法
 
 NacosPropertySourceLocator实现了propertySourceLocators
 
NacosPropertySourceLocator.locate

loadSharedConfiguration
加载shared配置
 
 通过nacosConfigProperties读取sharedConfigs配置,在这里如果我们封装脚手架,可以通过系统设置默认配置读取
 
扩展:nacos自定义配置yaml文件读取
自定义读取配置,可以配置默认的 xxx.yaml
 
 启动时装载
 
读取dataId数据
获取到sharedConfigs之后
 
通过dataId获取数据
 
 configService.getConfig通过grpc去服务端拉取配置并返回,具体代码省略














![命令设计模式(Command Pattern)[论点:概念、组成角色、相关图示、示例代码、框架中的运用、适用场景]](https://img-blog.csdnimg.cn/b4d0a047b99a482c8a86fe8a0a5db228.png)



