springcloud - alibaba - 3 - 整合config - 更新完毕
时间:2021-12-08 作者:xiegongzi
0、补充
1、需求
-
如果我有这么一个请求:我想要gitee中的配置改了之后,我程序yml中的配置也可以跟着相应产生变化,利用原生的方式怎么做?一般做法如下:
-
而有了SpringCloud-alibab的config配置管理之后,就方便得多了,具体操作马上演示
2、创建配置
然后选择发布即可
3、快速上手
3.1)、依赖
- 依赖管理
<parent>
<artifactId>spring-boot-parent</artifactId>
<groupId>域名</groupId>
<!-- 注意这里的版本问题 -->
<version>域名.RELEASE</version>
<relativePath/>
</parent>
- 项目需要的依赖
<dependencies>
<dependency>
<groupId>域名</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- springcloud-alibaba-nacos需要的依赖 -->
<dependency>
<groupId>域名d</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- springcloud-alibaba-config需要的依赖 -->
<dependency>
<groupId>域名d</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>域名d</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<!-- 注意这里的版本问题 -->
<version>2.域名ASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>域名d</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>域名</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
3.2)、编写yml配置
spring:
application:
name: ALIBABA-PUBLISHER
cloud:
nacos:
server-addr: 域名.60:8848 # 代表服务端的地址
discovery:
server-addr: ${域名域名er-addr}
config:
file-extension: yml # 文件后缀名 必须配置 这个config中还有其他配合,如:命名空间....按需要直接配置即可
group: DEFAULT_GROUP
profiles:
active: dev # 文件拓展名 这个必须配置,对应application-域名中的dev.....
# 如上配置的意思:
# 通过 server-addr这个地址,找到ALIBABA-PUBLISHER-域名配置文件
# 注:文件格式必须是 xxxxx-dev / 域名 / 或者其他后缀名,即:必须有拓展名
3.3)、编写启动类
package 域名eqing;
import 域名.SpringApplication;
import 域名.域名ngBootApplication;
import 域名域名域名leDiscoveryClient;
/**
* @ClassName PublisherApplication
* @Author ZiXieQing
* @Date 2021/12/7
* Version 1.0
**/
@SpringBootApplication
@EnableDiscoveryClient
public class PublisherApplication {
public static void main(String[] args) {
域名(域名s, args);
}
}
3.4)、编写服务
package 域名roller;
import 域名域名域名e;
import 域名域名域名eshScope;
import 域名.域名apping;
import 域名.域名estMapping;
import 域名.域名Controller;
/**
* @ClassName ProvideService
* @Author ZiXieQing
* @Date 2021/12/7
* Version 1.0
**/
@RestController
@RefreshScope // 同步 nacos中配置做了修改,这里也会同步更新
@RequestMapping("/service")
public class ProvideService {
@Value("${域名}")
private String port;
@GetMapping("/provider")
public String provider() {
域名tln(port);
return "你要结果,那老衲就给你一个结果嘛!" + "=== 当前端口为:==>" + port;
}
}
3.5)、运行效果如下
但是:我改了nacos中的配置呢?
-
再次发起请求
-
可见:自动刷新了,这比springcloud的config强大多了,爽得很