使用spring-cloud-alibaba-nacos-config配置中心:
啟動(dòng)原理, spring.factories配置啟動(dòng)類(自定義springboot starter都會(huì)用到該配置, 默認(rèn)路徑 /META-INF/spring.factories):
org.springframework.cloud.bootstrap.BootstrapConfiguration=\
com.alibaba.cloud.nacos.NacosConfigBootstrapConfiguration
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.alibaba.cloud.nacos.NacosConfigAutoConfiguration,\
com.alibaba.cloud.nacos.endpoint.NacosConfigEndpointAutoConfiguration
org.springframework.boot.diagnostics.FailureAnalyzer=\
com.alibaba.cloud.nacos.diagnostics.analyzer.NacosConnectionFailureAnalyzer
1. com.alibaba.cloud.nacos.NacosConfigBootstrapConfiguration
該類使用@ConditionalOnProperty(name = "spring.cloud.nacos.config.enabled", matchIfMissing = true)注解控制配置中心的開(kāi)啟和關(guān)閉, 主要負(fù)責(zé)加載配置
并且該類向spring容器注冊(cè)NacosConfigProperties(nacos配置中心相關(guān)的配置)和NacosPropertySourceLocator(nacos的配置探測(cè)器, 讀取配置屬性)
NacosPropertySourceLocator使用NacosPropertySourceBuilder.ConfigService加載配置的優(yōu)先級(jí), 本地 > http讀取nacos配置中心 > 快照
共享文件必須是 名稱 + 后綴, 不需要特殊處理即可直接讀取, 項(xiàng)目自定義的配置文件名稱拼接規(guī)則:? 名稱 + 環(huán)境 + 后綴
加載配置總結(jié):
配置加載順序: 共享配置 -> 擴(kuò)展配置 -> 項(xiàng)目配置(包含兩個(gè): 1. 項(xiàng)目名+后綴, 2. 項(xiàng)目名+環(huán)境+后綴)
配置使用優(yōu)先級(jí): 本地指定配置 > 配置中心 -> 本地快照
配置文件名優(yōu)先級(jí): NacosConfigProperties.prefix > NacosConfigProperties.name > spring.application.name
2. com.alibaba.cloud.nacos.NacosConfigAutoConfiguration
該類向容器注冊(cè) NacosContextRefresher, 該類負(fù)責(zé)刷新配置
3. com.alibaba.cloud.nacos.endpoint.NacosConfigEndpointAutoConfiguration
該類注冊(cè) NacosConfigEndpoint (actuator端點(diǎn))和 NacosConfigHealthIndicator(健康檢查)