SpringBoot整合nacos實現配置中心(配置動態更新)


 

官方教程:https://nacos.io/zh-cn/docs/quick-start-spring-boot.html

 

Linux使用docker部署nacos: https://www.cnblogs.com/pxblog/p/15218599.html

默認賬號密碼都是:nacos

 

 

 

pom.xml

   <!-- https://mvnrepository.com/artifact/com.alibaba.boot/nacos-config-spring-boot-starter -->
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>nacos-config-spring-boot-starter</artifactId>
            <version>0.2.7</version>
        </dependency>

 

application.properties 中配置 Nacos server 的地址:

nacos.config.server-addr=127.0.0.1:8848

 

如果命名空間不是public要單獨設置

nacos.config.namespace=dev

 

 

 

 

 

 

啟動器類

 

 這里的dataId要和配置中心的dataId對應

 

測試控制器

 /**
     * 通過NacosValue讀取配置,
     * autoRefreshed 表示是否自動更新
     */
    @NacosValue(value = "${http_url}", autoRefreshed = true)
    private String httpUrl;

    @GetMapping(value = "/get")
    @ResponseBody
    public String get() {
        return httpUrl;
    }

 

 

 下面是第二種寫法(這種寫法不支持實時更新配置)

 

 下面這種要放在boostrap.yml中

 SpringBoot項目bootstrap.yml配置文件不加載:https://www.cnblogs.com/pxblog/p/15036197.html

 

 pom依賴  這個我把注冊中心的依賴也加了 

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.1.4.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2.1.4.RELEASE</version>
        </dependency>

 

 

配置方式

spring:
  application:
    name: demo-service #項目名
  profiles:
    active: dev
  cloud:
    nacos:
      # 配置中心
      config:
        # 命名空間id(此處不用public,因public初始化的空間, id為空)
        namespace: ${spring.profiles.active}
        # nacos的ip地址和端口
        server-addr: ${NACOS-HOST:127.0.0.1}:${NACOS-PORT:8848}
        #nacos登錄用戶名
        username: nacos
        #nacos登錄密碼
        password: nacos
        # 這個就表示 在我們nacos命名空間id為 dev中 有一個data-id 為 demo-service.yml 的配置文件 讀取這個里面的配置
        file-extension: yml
        config-retry-time: 300000
        # 共享配置, 可以把公共配置放在同個命名空間下,然后創建一個 common.yml 文件 ,里面可以放共用的配置
        shared-configs: common.yml

      # 發布到注冊中心 (如果沒有使用可以不配)
      discovery:
        # 命名空間id(此處不用public,因public初始化的空間, id為空)
        namespace: ${spring.profiles.active}
        # nacos的ip地址和端口
        server-addr: ${NACOS-HOST:127.0.0.1}:${NACOS-PORT:8848}

 

如果要覆蓋共享配置里面的內容 只需要在主配置文件(application.yml)中在寫一遍配置即可 ,主配置優先級高


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM