SpringCloud系列教程(6)-- Config客户端调用

本文介绍如何使用Spring Cloud Config实现客户端应用程序的远程配置,并通过动态刷新功能即时更新配置信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

###Config客户端编写
上一篇,讲了config配置,这次讲客户端怎么调用

  1. 新建cloud-config-client 客户端项目,pom引入相关依赖如下:
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

2.新建测试类GlobalController.java 代码如下

@Controller
public class GlobalController {
	
	
	@Value("${foo}")//将foo值注入
	private String foo;
	
	@ResponseBody
	@RequestMapping("/")
	public String home() {
		return foo;
	}

}

3.配置 bootstrap.properties ,切记客户端的配置是bootstrap.properties
因为bootstrap.properties 载入的优先级要比 application.properties 要高,配置代码如下:

spring.application.name=cloud-client
spring.cloud.config.label=master
spring.cloud.config.profile=test
spring.cloud.config.uri= http://127.0.0.1:8082/
server.port=8083
management.security.enabled=false

4.分别启动cloud-config-server ,cloud-config-client ,访问 http://127.0.0.1:8083/
内容1

5.项目启动中,我们变更下cloud-client-test.properties中的内容变更并提交:

foo=this is new test properties 

重新刷新http://127.0.0.1:8083/ 发现依然显示原来的内容
怎么做到动态更新呢?

6.在GlobalController.java 上新增 @RefreshScope注解,重新启动访问,然后在线变更
cloud-client-test.properties 后,我们调用
http://127.0.0.1:8083/refresh
刷新属性配置这是客户端URL哦,而且这是POST请求
重新刷新 http://127.0.0.1:8083/ 发现,值已经更新了
内容2

7.总结
config的动态更新其实并不实用,因为每次配置文件变更,必须调用客户端的刷新链接,才能够动态更新,但是大部分情况,客户端的服务可能非常多,不可能一一调用,因为服务端的本质是一个http请求,所以最优方案依然是实时通过http请求获取最新值。

###戳我下载示例代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值