前置條件:基於前文“NACOS服務注冊與發現搭建”項目中創建的項目開發NACOS的動態配置功能。
方式一:啟動配置管理方式獲取配置
1、項目引入POM包
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>

2、yml配置NACOS系統信息
- 新增bootstrap.yml文件,配置信息寫在該文件里。(問題:如放在application.yml會導致項目啟動報找不到配置屬性錯誤,原因:application.yml與bootstrap.yml加載順序優先級問題。)
bootstrap.yml(bootstrap.properties)用來程序引導時執行,應用於更加早期配置信息讀取,如可以使用來配置application.yml中使用到參數等
application.yml(application.properties) 應用程序特有配置信息,可以用來配置后續各個模塊中需使用的公共參數等。
加載順序:bootstrap.yml > application.yml > application-dev(prod).yml > ...
- 在bootstrap.yml中新增application.name和nacos的config信息。
spring: application: name: order-service-demo cloud: nacos: config: server-addr: localhost:8848 file-extension: properties # 此處為配置使用的后綴名 group: DEFAULT_GROUP

3、NACOS系統新增動態配置參數
登錄NOCAS系統在配置列表頁面,點擊新增配置輸入配置信息,本文選擇的是properties配置文件類型。
DataID格式:${prefix}-${spring.profiles.active}.${file-extension}
prefix:默認為 spring.application.name 的值,也可以通過配置項 spring.cloud.nacos.config.prefix來配置。
spring.profiles.active:即為當前環境對應的 profile,詳情可以參考 Spring Boot文檔。 注意:當 spring.profiles.active 為空時,對應的連接符 - 也將不存在,dataId 的拼接格式變成 ${prefix}.${file-extension}
file-exetension:為配置內容的數據格式,可以通過配置項 spring.cloud.nacos.config.file-extension 來配置。目前只支持 properties 和 yaml 類型。

4、代碼配置
在使用配置的controller中新增 @RefreshScope 注解,以及在注入屬性上新增 @Value("${Key名稱}") 注解。訪問網站儲呈現


方式二:JAVA SDK方式獲取配置
1、項目引入POM包
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>2.0.0-ALPHA.2</version>
</dependency>

2、NACOS系統新增動態配置參數
登錄NOCAS系統在配置列表頁面,點擊新增配置輸入配置信息,本文選擇的是json配置文件類型。
DataID格式:${prefix}-${spring.profiles.active}.${file-extension}
prefix:默認為 spring.application.name 的值,也可以通過配置項 spring.cloud.nacos.config.prefix來配置。
spring.profiles.active:即為當前環境對應的 profile,詳情可以參考 Spring Boot文檔。 注意:當 spring.profiles.active 為空時,對應的連接符 - 也將不存在,dataId 的拼接格式變成 ${prefix}.${file-extension}
file-exetension:為配置內容的數據格式,可以通過配置項 spring.cloud.nacos.config.file-extension 來配置。目前只支持 properties 和 yaml 類型。

3、代碼段
獲取NACOS配置服務,根據Data ID獲取配置。

獲取到的配置信息,接口返回呈現。


