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強大多了,爽得很