Spring Cloud Config中手动刷新配置的端点:/actuator/refresh
Server连接的远程数据库(如gitee或github)中配置文件进行了动态修改,Client通过手动刷新端点获取新的配置属性值。具体步骤如下:
依赖
Client应用程序中添加actuator依赖,从而可以使用actuator下的端点。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
配置controller的刷新属性
在Controller Bean上添加注解@RefreshScope,从而该Bean的属性可以通过外部配置文件属性获取更新。还有一种方法,将application.properties(或.yml)文件中属性键spring.cloud.refresh.extra-refreshable下设置需要刷新的类名。
方法一:
@RestController
@RefreshScope
public class ConfigClientController {
@Value("${profile}")
private String profile;
@GetMapping("/profile")
public String hello() {
return this.profile;
}
}
方法二:
spring:
cloud:
refresh:
extra-refreshable:
- ConfigClientController
actuator下添加refresh端点
由于actuator下默认端点时health和info,没有refresh端点,以此需要添加该端点。在application.properties(或.yml)文件中,添加如下代码:
management:
endpoints:
web:
exposure:
include: health, info, refresh
使用refrehs端点
curl -X POST http://localhost:8081/actuator/refresh,刷新从Server中获取配置文件的属性值。