springcloud - alibaba - 3 - 整合config - 更新完畢

紫邪情發表於2021-12-07

0、補充

截圖

1、需求

  • 如果我有這麼一個請求:我想要gitee中的配置改了之後,我程式yml中的配置也可以跟著相應產生變化,利用原生的方式怎麼做?一般做法如下:

    • 截圖
  • 而有了SpringCloud-alibab的config配置管理之後,就方便得多了,具體操作馬上演示

2、建立配置

截圖

截圖

然後選擇釋出即可

3、快速上手

3.1)、依賴

  • 依賴管理

    <parent>
        <artifactId>spring-boot-parent</artifactId>
        <groupId>org.springframework.boot</groupId>
        <!-- 注意這裡的版本問題 -->
        <version>2.3.12.RELEASE</version>
        <relativePath/>
    </parent>

  • 專案需要的依賴
  <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- springcloud-alibaba-nacos需要的依賴 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <!-- springcloud-alibaba-config需要的依賴 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

    </dependencies>


    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <!-- 注意這裡的版本問題 -->
                <version>2.2.6.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR12</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>

    </dependencyManagement>

3.2)、編寫yml配置


spring:
  application:
    name: ALIBABA-PUBLISHER

  cloud:
    nacos:
      server-addr: 162.14.66.60:8848    # 代表服務端的地址
      discovery:
        server-addr: ${spring.cloud.nacos.server-addr}
      config:
        file-extension: yml   # 檔案字尾名 必須配置  這個config中還有其他配合,如:名稱空間....按需要直接配置即可
        group: DEFAULT_GROUP
  profiles:
    active: dev   # 檔案擴充名  這個必須配置,對應application-dev.yml中的dev.....
    
# 如上配置的意思:
#   通過 server-addr這個地址,找到ALIBABA-PUBLISHER-dev.yml配置檔案
#       注:檔案格式必須是 xxxxx-dev / test.yml / 或者其他字尾名,即:必須有擴充名

截圖

3.3)、編寫啟動類


package cn.zixieqing;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

/**
 * @ClassName PublisherApplication
 * @Author ZiXieQing
 * @Date 2021/12/7
 * Version 1.0
 **/

@SpringBootApplication
@EnableDiscoveryClient
public class PublisherApplication {

    public static void main(String[] args) {
        SpringApplication.run(PublisherApplication.class, args);
    }
}

截圖

3.4)、編寫服務


package cn.zixieqing.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.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @ClassName ProvideService
 * @Author ZiXieQing
 * @Date 2021/12/7
 * Version 1.0
 **/

@RestController
@RefreshScope       // 同步   nacos中配置做了修改,這裡也會同步更新
@RequestMapping("/service")
public class ProvideService {

    @Value("${server.port}")
    private String port;

    @GetMapping("/provider")
    public String provider() {

        System.out.println(port);

        return "你要結果,那老衲就給你一個結果嘛!" + "=== 當前埠為:==>" + port;
    }
}

截圖

3.5)、執行效果如下

截圖

但是:我改了nacos中的配置呢?

  • 截圖

  • 再次發起請求

    • 截圖

    • 可見:自動重新整理了,這比springcloud的config強大多了,爽得很

相關文章