讀取Nacos配置中心的配置檔案
1、在Nacos建立統一配置檔案
(1)點選建立按鈕(2)輸入配置資訊
a)Data ID的完整規則格式如下
${prefix}-${spring.profile.active}.${file-extension}
- prefix預設為所屬工程配置spring.application.name的值(即:nacos-provider),也可以通過配置項spring.cloud.nacos.config.prefix來配置。
-spring.profiles.active=dev即為當前環境對應的profile。注意:當spring.profiles.active為空時,對應的連線符-也將不存在,dataId的拼接格式變成${prefix}.${file-extension}
- file-exetension為配置內容的資料格式,可以通過配置項spring.cloud.nacos.config.file-extension來配置。目前只支援properties和yaml型別。
2、以service-statistics模組為例
(1)在service中引入依賴<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
(2)建立bootstrap.properties配置檔案
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.profiles.active=dev
# 該配置影響統一配置中心中的dataId,之前已經配置過
spring.application.name=service-statistics
(3)把專案之前的application.properties內容註釋,啟動專案檢視效果
3、補充:springboot配置檔案載入順序其實yml和properties檔案是一樣的原理,且一個專案上要麼yml或者properties,二選一的存在。推薦使用yml,更簡潔。
bootstrap與application
(1)載入順序
這裡主要是說明application和bootstrap的載入順序。
bootstrap.yml(bootstrap.properties)先載入
application.yml(application.properties)後加載
bootstrap.yml 用於應用程式上下文的引導階段。
bootstrap.yml 由父Spring ApplicationContext載入。
父ApplicationContext 被載入到使用 application.yml 的之前。
(2)配置區別
bootstrap.yml 和application.yml 都可以用來配置引數。
bootstrap.yml 可以理解成系統級別的一些引數配置,這些引數一般是不會變動的。
application.yml 可以用來定義應用級別的。
三、名稱空間切換環境
1、建立名稱空間
預設只有public,新建了dev、test和prod名稱空間
2、克隆配置
(1)切換到配置列表:
可以發現有四個名稱空間:public(預設)以及我們自己新增的3個名稱空間(prod、dev、test),可以點選檢視每個名稱空間下的配置檔案,當然現在只有public下有一個配置。
預設情況下,專案會到public下找服務名.properties檔案。
接下來,在dev名稱空間中也新增一個nacos-provider.properties配置。這時有兩種方式:
第一,切換到dev名稱空間,新增一個新的配置檔案。缺點:每個環境都要重複配置類似的專案
第二,直接通過clone方式新增配置,並修改即可。推薦
點選編輯:修改配置內容,埠號改為8013以作區分
在專案模組中,修改bootstrap.properties新增如下配置
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.profiles.active=dev
# 該配置影響統一配置中心中的dataId,之前已經配置過
spring.application.name=service-statistics
spring.cloud.nacos.config.namespace=dfee0c9a-f063-4364-9bd9-4efbaa0f8f31
重啟服務提供方服務,測試修改之後是否生效
四、多配置檔案載入
在一些情況下需要載入多個配置檔案。假如現在dev名稱空間下有2個配置檔案:service-statistics.properties、jdbc.properties
新增配置,載入多個配置檔案
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.profiles.active=dev
# 該配置影響統一配置中心中的dataId,之前已經配置過
spring.application.name=service-statistics
spring.cloud.nacos.config.namespace=dfee0c9a-f063-4364-9bd9-4efbaa0f8f31
spring.cloud.nacos.config.ext-config[0].data-id=port.properties
spring.cloud.nacos.config.ext-config[0].refresh=true