在以前的兩篇文章
Spring Cloud Alibaba基礎教程第一篇:使用Nacos實現服務註冊與發現
Spring Cloud Alibaba基礎教程第二篇:消費方式
相信咱們已經簡單掌握,如何利用Nacos搭建註冊中心並實現服務的註冊與發現。還有在Alibaba Spring Cloud中,咱們一樣可使用Ribbon和Feign兩種服務消費方式。那麼接下來,咱們再來學習一下Nacos的配置管理,來感覺它的美java
經過官方文檔瞭解到,Nacos不只有服務發現和服務健康監測,實現服務的註冊發現以外,還有動態配置服務。Nacos動態配置服務可讓您以中心化、外部化和動態化的方式管理全部環境的應用配置和服務配置,咱們能夠將整個架構體系內的全部配置都集中在Nacos中存儲。這個道理和Spring Cloud Config是同樣的,優勢主要有如下幾點:git
Nacos 提供用於存儲配置和其餘元數據的 key/value 存儲,爲分佈式系統中的外部化配置提供服務器端和客戶端支持。使用 Spring Cloud Alibaba Nacos Config,您能夠在 Nacos Server 集中管理你 Spring Cloud 應用的外部屬性配置。 Spring Cloud Alibaba Nacos Config 是 Config Server 和 Client 的替代方案,客戶端和服務器上的概念與 Spring Environment 和 PropertySource 有着一致的抽象,在特殊的 bootstrap 階段,配置被加載到 Spring 環境中。當應用程序經過部署管道從開發到測試再到生產時,您能夠管理這些環境之間的配置,並確保應用程序具備遷移時須要運行的全部內容github
接下來介紹如何在Nacos中建立配置內容以及如何在Spring Cloud應用中獲取Nacos的配置信息 演示相關版本:web
Nacos: 1.0.1 Spring Boot: 2.1.6.RELEASE Spring Cloud: Greenwich.SR1 Spring Cloud Alibaba: 0.2.2.RELEASEspring
打開瀏覽器輸入: localhost:8848 輸入帳號密碼 進入Nacos控制主頁apache
點擊右上角➕ 填入如下相關配置PS:json
在 Nacos Spring Cloud 中,dataId 的完整格式以下:${prefix}-${spring.profile.active}.${file-extension}
bootstrap
${prefix}.${file-extension}
配置完成後是這樣的瀏覽器
參數配置完畢,確定須要程序來獲取,安排!bash
這裏使用的姿式和上篇文章同樣
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.xd</groupId>
<artifactId>SpringCloudAlibabaLearn</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>
<artifactId>alibaba-nacos-config-client</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>alibaba-nacos-config-client</name>
<description>Nacos做爲配置中心服務</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!--nacos config依賴-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
複製代碼
主要仍是在以前的基礎做爲子模塊,集成父pom文件,添加nacos-config依賴
server.port=8084
#配置客戶端 Nacos中建立的配置Data Id匹配( 除了.properties或者.yaml後綴)
spring.application.name=alibaba-nacos-config-client
#註冊服務到nacos
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
#配置中心地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
複製代碼
主要配置註冊中心和配置中心 注意:這裏必須使用bootstrap.properties。同時,spring.application.name值必須與上一階段Nacos中建立的配置Data Id匹配(除了.properties或者.yaml後綴)
package com.xd.alibabanacosconfigclient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RefreshScope //主要用來讓這個類下的配置內容支持動態刷新
@SpringBootApplication
public class AlibabaNacosConfigClientApplication {
public static void main(String[] args) {
SpringApplication.run(AlibabaNacosConfigClientApplication.class, args);
}
// nacos配置的參數
@Value("${gongzhonghao}")
private String gongzhonghao;
@GetMapping("/test")
public String getGongzhonghao() {
return gongzhonghao;
}
}
複製代碼
@SpringBootApplication
: 定義是個Spring Boot應用
@RestController
: @RestController註解,至關於@Controller+@ResponseBody兩個註解的結合,返回json數據不須要在方法前面加@ResponseBody註解 @Value
: 注入了key爲gongzhonghao的配置(默認爲空字符串),這個配置會經過/test接口返回,後續咱們會經過這個接口來驗證Nacos中配置的加載。 @RefreshScope
: 主要用來讓這個類下的配置內容支持動態刷新,也就是當咱們的應用啓動以後,修改了Nacos中的配置內容以後,這裏也會立刻生效
打開瀏覽器,輸入 http://localhost:8084/test 內容顯示以下:
獲取的內容是我在nacos配置的驗證配置成功若是您對這些感興趣,歡迎star、follow、收藏、轉發給予支持!