启动初始化
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)



