spring-cloud-context
2021-11-02 18:47:50 9 举报
spring-cloud-context核心流程
作者其他创作
大纲/内容
BootstrapImportSelectorConfiguration
在环境变量中添加bootstrap子容器启动时不执行即当环境变量中有bootstrap则不执行
rebind
注入
spring.factories
发布EnvironmentChangeEvent
nacos-configspring-cloud-config等都是通过这个地方加载配置的
AutowireCapableBeanFactory#initializeBean
postProcessBeforeInitialization
BootstrapApplicationListener加载bootstrap配置文件
就是重新加载了一次
收到ApplicationEnvironmentPreparedEvent
替换PropertySource
RefreshEventListener
ConfigurationPropertiesRebinder
收到EnvironmentChangeEvent,或jmx调用
ConfigurationPropertiesBeans
apply
起一个SpringApplication使用bootstarp配置文件启动一次
PropertySourceLocator#locateCollection
AbstractAutowireCapableBeanFactory#invokeInitMethods
Import
关闭刚起的容器
addConfigFilesToEnvironment简单点就是又搞了个springBoot
设置监听器
GenericScope#destroy()销毁掉所有@RefreshScope的Bean
对所有@ConfigurationProperties
BeanPostProcessor#postProcessBeforeInitialization
是否是RefreshScoped
ConfigurationPropertiesRebinderAutoConfiguration处理所有@ConfigurationProperties
RefreshAutoConfiguration
收到RefreshEvent
BootstrapApplicationListenerConfigFileApplicationListener只有这两个读取配置文件的监听器
bootstrapServiceContext创建父容器
refreshEnvironment刷新配置
SpringApplication#run(java.lang.String...)
BootstrapImportSelector导入所有@BootstrapConfiguration
把所有@ConfigurationProperties包装成ConfigurationPropertiesBean并保存起来
ContextRefresher#refresh
RefreshScope#refreshAll
不是
AutowireCapableBeanFactory#destroyBean
把父容器的ApplicationContextInitializer添加到子容器中
PropertySourceBootstrapConfiguration
0 条评论
下一页