Spring?Cloud?整合?nacos實現(xiàn)動態(tài)配置中心的詳細步驟
上一篇文章講解了Spring Cloud 整合 nacos 實現(xiàn)服務注冊與發(fā)現(xiàn),nacos除了有服務注冊與發(fā)現(xiàn)的功能,還有提供動態(tài)配置服務的功能。本文主要講解Spring Cloud 整合nacos實現(xiàn)動態(tài)配置服務。主要參考官方部署手冊點我。
前提條件
先下載nacos并啟動nacos服務。操作步驟詳見Nacos 快速入門。
整合步驟
1. 添加依賴
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.2.12.RELEASE</version>
</dependency>版本nacos2.1.x.RELEASE 對應的是 Spring Boot 2.1.x 版本。版本 2.0.x.RELEASE 對應的是 Spring Boot 2.0.x 版本,版本 1.5.x.RELEASE 對應的是 Spring Boot 1.5.x 版本。版本不匹配的話,會出現(xiàn)很多莫名其妙的問題。nacos依賴版本要和nacos服務端版本要一致。
2. 新建 nacos 配置
在nacos控制臺添加配置列表:

設置dataId為nacos-config,文件后綴為Properties,設置內容user.name=jack:

3. bootstrap.properties 配置
在application.yml同目錄下創(chuàng)建bootstrap.yml文件,并配置Nacos服務地址以及namespace(沒有就不需要配置):
spring:
application:
name: nacos-config-client
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
namespace: 68468122-8955-45ee-a5b7-3d87972325b14. 配置dataId
dataId對應步驟2里面的dataId,有兩種配置方式,一種是官方自動構建dataId ,另一種是指定dataId。
4.1 自動配置 dataId
在Nacos Spring Cloud中,dataId的完整格式如下:
${prefix}-${spring.profiles.active}.${file-extension}prefix默認為spring.application.name的值,也可以通過配置項spring.cloud.nacos.config.prefix來配置。spring.profiles.active即為當前環(huán)境對應的profile。 注意:當spring.profiles.active為空時,對應的連接符 - 也將不存在,dataId的拼接格式變成${prefix}.${file-extension}file-exetension為配置內容的數(shù)據格式,可以通過配置項spring.cloud.nacos.config.file-extension來配置。目前只支持properties和yaml類型。
比如項目名稱為nacos-config-client,當前環(huán)境為test,格式文件為properties,那就需要新建一個dataId為nacos-config-client.properties配置。
4.2 手動設置 dataId
在NacosConfigProperties類里面name字段就是配置dataId:
public class NacosConfigProperties {
/**
* nacos config dataId name.
*/
private String name;
//省略其他配置
}在bootstrap.yml添加spring.cloud.nacos.config.name就可以設置dataId。
5.獲取數(shù)據
通過@Value就能獲取配置文件的數(shù)據:
@Component
@RefreshScope
public class TestConfig {
@Value(value = "${user.name:null}")
private String test;
public String getTest(){
return test;
}要實現(xiàn)配置的自動更新,需要添加Spring Cloud原生注解 @RefreshScope。controller直接調用即可:
@RestController
public class TestController {
@Autowired
private TestConfig testConfig;
@GetMapping("/config")
public String testConfig(){
String config = testConfig.getTest();
return config;
}
}如果想通過@NacosValues注解獲取數(shù)據,需要引入nacos-config-spring-boot-starter依賴:
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>0.2.7</version>
</dependency>總結
nacos-config配置首先添加spring-cloud-starter-alibaba-nacos-config依賴。- 在配置列表添加配置
bootstrap.properties添加nacos server地址和namespace- 配置
dataId有兩種方式- 手動配置,配置
spring.cloud.nacos.config.name - 自動配置,根據
${prefix}-${spring.profiles.active}.${file-extension}規(guī)則配置,其中prefix為項目名稱,spring.profiles.active為項目運行環(huán)境,file-extension配置內容的數(shù)據格式。
- 手動配置,配置
- 通過
@Value(value = "${user.name:null}")設置在字段上就能獲取到屬性,要實現(xiàn)自動更新配置需要添加@RefreshScope注解。
源碼
參考文獻
Nacos 融合 Spring Cloud,成為注冊配置中心
到此這篇關于Spring Cloud 整合 nacos 實現(xiàn)動態(tài)配置中心的文章就介紹到這了,更多相關Spring Cloud 整合 nacos內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot創(chuàng)建多模塊項目的全過程記錄
這篇文章主要給大家介紹了關于SpringBoot創(chuàng)建多模塊項目的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01
詳解使用spring boot admin監(jiān)控spring cloud應用程序
本篇文章主要介紹了詳解使用spring boot admin監(jiān)控spring cloud應用程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-11-11
Java SpringBoot啟動指定profile的8種方式詳解
這篇文章主要介紹了spring boot 如何指定profile啟動的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09
Java Swing實現(xiàn)餐廳點餐系統(tǒng)源碼(收藏版)
這篇文章主要介紹了Java Swing實現(xiàn)餐廳點餐系統(tǒng)源碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02

