springcloud Alibaba入門系列之Nacos作為配置中心

在前面我們了解了:

那么在本篇我們來學(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

代碼示例

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容