springcloud|springcloud - alibaba - 3 - 整合config - 更新完毕
0、补充
文章图片
1、需求
- 如果我有这么一个请求:我想要gitee中的配置改了之后,我程序yml中的配置也可以跟着相应产生变化,利用原生的方式怎么做?一般做法如下:
-
文章图片
-
- 而有了SpringCloud-alibab的config配置管理之后,就方便得多了,具体操作马上演示
文章图片
文章图片
然后选择发布即可
3、快速上手 3.1)、依赖
- 依赖管理
spring-boot-parent
org.springframework.boot 2.3.12.RELEASE
- 项目需要的依赖
org.springframework.boot
spring-boot-starter-web
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-config
com.alibaba.cloud
spring-cloud-alibaba-dependencies2.2.6.RELEASE
pom
import
org.springframework.cloud
spring-cloud-dependencies
Hoxton.SR12
pom
import
3.2)、编写yml配置
spring:
application:
name: ALIBABA-PUBLISHERcloud:
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|springcloud - alibaba - 3 - 整合config - 更新完毕】可见:自动刷新了,这比springcloud的config强大多了,爽得很
-
推荐阅读
- Spring|Spring Boot 整合 Activiti6.0.0
- springboot整合数据库连接池-->druid
- SpringBoot整合MongoDB完整实例代码
- 【SpringCloud-Alibaba系列教程】8.一文学会使用sentinel
- Springboot整合kafka的示例代码
- 15天蜕变之旅Day6~5月29日作业父母能量链接内在整合
- Spring|Spring Boot整合Mybatis进行CRUD
- Spring|Spring Cloud Alibaba之负载均衡组件 - Ribbon
- Springboot整合RabbitMQ(三)——Topic主题交换机
- 史上最简单的SpringCloud教程|史上最简单的SpringCloud教程 | 第十篇: 高可用的服务注册中心(Finchley版本)