通過之前的學習,我們知道應用引入nacos配置中心之后默認將會加載Data ID= ${prefix} - ${spring.profiles.active} . ${file-extension} 默認Group為public的配置文件,並且可以通過下面三個參數指定修改默認的配置文件:
- spring.cloud.nacos.config.prefix
- spring.cloud.nacos.config.file-extension
- spring.profiles.active
有時候一個模塊項目需要多個配置文件,這時候我們就可以使用nacos的擴展配置參數(extended configurations)引用同一個namesapce下面更多的配置文件。
第一步:創建多個配置文件。我們在默認的namespace下創建了三個配置文件,其中nacos-consumer.properties配置在默認的組DEFAULT_GROUP,database.properties和log.properties則配置在Group_A組里。
- database.properties配置內容是:database.url=127.0.0.1
- log.properties配置配置內容是:log.data=/home/logs
- consumer.properties配置配置內容是:config.address=zhengzhou
第二步:應用引入nacos注冊中心,加載多個配置文件。
<!--注冊中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
spring:
profiles:
active: dev
application:
name: nacos-provider
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 #注冊中心地址
config:
server-addr: 127.0.0.1:8848 #配置中心地址
file-extension: yml #配置文件格式
namespace: #命名空間
group: #項目
extension-configs[0]:
data-id: file.yaml
group: DEFAULT_GROUP # 默認為DEFAULT_GROUP
refresh: true # 是否動態刷新,默認為false
extension-configs[1]:
data-id: file.yaml
group: DEFAULT_GROUP
refresh: true
server:
port: 9090
extension-configs配置是一個數組List類型,每個配置中包含三個參數:data-id、group,refresh。其中refresh參數用於控制這個配置文件中的內容時候是否支持自動刷新,默認情況下,只有默認加載的配置才會自動刷新,對於這些擴展的配置加載內容需要配置該設置時候才會實現自動刷新。
共享配置(shared configurations)
上面的擴展配置實際上是一種namesapce下的共享配置,根據上一篇文章環境隔離的經典案例划分,就是一種企業內各項目之間的共享配置。有時候我們希望有些配置文件只在同一個項目下的不同的環境之間共享(實際上是一種group下的共享配置),這時候就可以使用Nacos的共享配置(shared configurations)去實現。

配置的文件的加載順序:
1、先加載shared-dataids配置
2、再加載ext-config配置
3、最后加載默認配置
注意:后面加載的會覆蓋前面加載的文件。
