spring-cloud-context
2024-03-26 16:47:35 2 举报
Spring Cloud Context是一个为Spring Cloud应用程序提供上下文服务的库。它包含了Spring Cloud环境中的基础服务,如服务发现、配置管理等。Spring Cloud Context提供了一个抽象类AbstractContextManager,用于管理不同应用程序上下文的创建和销毁。此外,Spring Cloud Context还提供了注解@RefreshScope,用于动态刷新应用程序上下文中的Bean。这样,当应用程序的配置信息发生变化时,可以自动更新Bean的状态,而不需要重新启动整个应用程序。总之,Spring Cloud Context是Spring Cloud框架中重要的一部分,提供了许多关键的上下文服务,简化了Spring Cloud应用程序的开发。
作者其他创作
大纲/内容
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创建父容器
ContextRefresher#refreshEnvironment刷新配置
SpringApplication#run(java.lang.String...)
BootstrapImportSelector导入所有@BootstrapConfiguration
把所有@ConfigurationProperties包装成ConfigurationPropertiesBean并保存起来
ContextRefresher#refresh
RefreshScope#refreshAll
不是
AutowireCapableBeanFactory#destroyBean
把父容器的ApplicationContextInitializer添加到子容器中
PropertySourceBootstrapConfiguration
0 条评论
回复 删除
下一页