SpringCloud學(xué)習(xí)-Nacos配置管理

前面了解了Nacos作為服務(wù)注冊中心,現(xiàn)在了解下,Nacos作為配置管理中心

以前更改配置后,都需要手動重啟工程才行,現(xiàn)在只需要搭上 Nacos ,你就可以在Nacos 上保存后,自動更新工程的配置項了

搭建工程(基于上次服務(wù)注冊的工程)

pom.xml


        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter</artifactId>
        </dependency>

        <!--nacos依賴-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>0.9.0.RELEASE</version>
        </dependency>
        <!--nacos 配置中心-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-alibaba-nacos-config</artifactId>
            <version>0.9.0.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

bootstrap.yml

網(wǎng)上找的解釋詞:
創(chuàng)建配置文件名為bootstrap.yml,一定是bootstrap.xxx
原因:
Nacos同springcloud-config一樣,在項目初始化時,要保證先從配置中心進(jìn)行配置拉取,拉取配置之后,才能保證項目的正常啟動。springboot中配置文件的加載是存在優(yōu)先級順序的
bootstrap優(yōu)先級高于application

spring:
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml
        prefix: nacos-config
  profiles:
    active:

application.yml

server:
  port: 8860

spring:
  application:
    name: nacos-config
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
    
nacos:
  cofing:
    name : nacosconfig
    function: study

創(chuàng)建Controller

需要@RefreshScope進(jìn)行標(biāo)記,表示 當(dāng)前類下的配置支持動態(tài)更新


@RestController
@RefreshScope
public class ConfigController {

    @Value("${nacos.cofing.name}")
    private String name;

    @Value("${nacos.cofing.function}")
    private String book;

    @GetMapping("/name")
    public String getName() {

        return name;
    }

    @GetMapping("/function")
    public String getFunction() {

        return book;
    }
}

在Nacos上進(jìn)行配置

新建配置

Data ID的規(guī)則:

${prefix}-${spring.profile.active}.${file-extension}

-- `prefix` 默認(rèn)為 `spring.application.name` 的值,也可以通過配置項 `spring.cloud.nacos.config.prefix`來配置
-- `spring.profile.active` 即為當(dāng)前環(huán)境對應(yīng)的 profile,詳情可以參考 [Spring Boot文檔](`https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html#boot-features-profiles`)。 **注意:當(dāng) `spring.profile.active` 為空時,對應(yīng)的連接符 `-` 也將不存在,dataId 的拼接格式變成 `${prefix}.${file-extension}`
-- `file-exetension` 為配置內(nèi)容的數(shù)據(jù)格式,可以通過配置項 `spring.cloud.nacos.config.file-extension` 來配置。目前只支持 `properties` 和 `yaml` 類型

我這里命名為: nacos-config.yaml

bootstrap.yml
dataIdPrefix

這里可以解釋 Data ID的規(guī)則里 prefix 的 釋義

構(gòu)造dataId

dataId是由 dataIdPrefix + "." + fileExtension 構(gòu)造而成

通過dataId從Nacos上獲取配置服務(wù)

通過跟蹤代碼,我們可以發(fā)現(xiàn)
Nacos 是通過 dataId 也就是 dataIdPrefix + "." + fileExtension來獲取的Nacos上的配置信息

編寫Nacos上的配置信息

Nacos上的配置信息

編寫好后點發(fā)布就ok了

啟動工程

訪問:http://localhost:8860/function
發(fā)現(xiàn)已經(jīng)是Nacos上的配置信息了

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

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

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