在前面我們了解了:
- 使用Nacos實(shí)現(xiàn)服務(wù)注冊(cè)與發(fā)現(xiàn)
- Springcloud Alibaba入門系列之客戶端調(diào)用方式
- springcloud Alibaba入門系列之springcloud gateway
那么在本篇我們來學(xué)習(xí)Nacos的另外一個(gè)重要的作用,目前我們只知道Nacos是作為服務(wù)的發(fā)現(xiàn)和注冊(cè)出現(xiàn)在我們的面前,它還可以作為作為遠(yuǎn)程的配置中心,實(shí)質(zhì)跟springcloud Config類似,感興趣的猿友們可以去對(duì)比看看,這里就不多說了.
快速入門
接下來我們通過簡(jiǎn)單的demo來學(xué)習(xí)Nacos作為配置中心是如何使用的,來看:
- 項(xiàng)目搭建
首先我們創(chuàng)建一個(gè)名為alibaba-nacos-config,創(chuàng)建過程跟之前一樣,接著引入相關(guān)依賴,代碼入下:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>0.2.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
接著我們來看配置文件,代碼如下:
server.port=9003
spring.application.name=alibaba-nacos-config
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
注意:這里的配置文件一定要使用bootstrap.properties或者是bootstrap.yml,避免加載時(shí)報(bào)錯(cuò).
接著來看我們的啟動(dòng)類,代碼如下:
package com.cacmp.alibaba.nacos.config;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
/**
* @author cb
*/
@SpringBootApplication
@EnableDiscoveryClient
public class AlibabaNacosConfigApplication {
public static void main(String[] args) {
SpringApplication.run(AlibabaNacosConfigApplication.class, args);
}
同樣我們將它注冊(cè)進(jìn)注冊(cè)中心,最后我們來寫一個(gè)接口,代碼如下:
package com.cacmp.alibaba.nacos.config.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author cb
*/
@RestController
@RefreshScope
public class NacosConfigController {
@Value("${config:}")
String str;
@GetMapping("/test")
public String testConfig() {
System.out.println(str);
return str;
}
其中注解:
- RefreshScope:動(dòng)態(tài)刷新該類的配置內(nèi)容.
- Value:注入了key為config的配置,默認(rèn)值為空字符串,我們主要通過該接口來動(dòng)態(tài)獲取Nacos管理臺(tái)配置的內(nèi)容.
接著啟動(dòng)我們的服務(wù),會(huì)看到如下的內(nèi)容:

微信截圖_20191027104720.png
接著來到我們的控制臺(tái):

微信截圖_20191027110033.png
- Data ID:必須是上圖中控制臺(tái)輸出的data ID,也就是alibaba-nacos-config.properties
- Group:默認(rèn)就可以了,也就是圖中的值
- 配置格式:我這里是properties
- 配置內(nèi)容:就是我們要?jiǎng)討B(tài)加載的內(nèi)容,以key-value的形式,圖中我只是簡(jiǎn)單的書寫
最后訪問http://127.0.0.1/test,會(huì)看到如下結(jié)果,結(jié)果如圖:

微信截圖_20191027110723.png