Spring Cloud 2.2.2 源碼之三十nacos客戶端獲取配置原理五

PropertySourceBootstrapConfiguration的initialize尾巴

還有個尾巴我就不多說了,就是一些處理,將結果放進環境,然後重新初始化等。

	if (!empty) {//如果結果不爲空
			MutablePropertySources propertySources = environment.getPropertySources();
			String logConfig = environment.resolvePlaceholders("${logging.config:}");
			LogFile logFile = LogFile.get(environment);
			for (PropertySource<?> p : environment.getPropertySources()) {
				if (p.getName().startsWith(BOOTSTRAP_PROPERTY_SOURCE_NAME)) {
					propertySources.remove(p.getName());//刪除bootstrapProperties,因爲bootstrap已經處理完了
				}
			}
			//將結果放入環境的MutablePropertySources中
			insertPropertySources(propertySources, composite);
			//重新初始化log系統
			reinitializeLoggingSystem(environment, logConfig, logFile);
			//設置log級別
			setLogLevels(applicationContext, environment);
			//處理包含的環境配置
			handleIncludedProfiles(environment);
		}

NacosConfigAutoConfiguration

NacosConfigProperties從老上下文中獲取

BootstrapApplicationListener中創建的新上下文中的單例:
在這裏插入圖片描述
這裏的NacosConfigProperties是從新上下文裏獲取來的,不是新創建的。
在這裏插入圖片描述
可以看到出現在老上下文中了:
在這裏插入圖片描述
老上下文的parent就是新上下文,有興趣的可以看裏面的信息。
在這裏插入圖片描述

其他重新創建

當然其他實例都重新創建了,我給個圖吧:
在這裏插入圖片描述
下篇再繼續分析這些類幹嘛的。

好了,今天就到這裏了,希望對學習理解有幫助,大神看見勿噴,僅爲自己的學習理解,能力有限,請多包涵。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章