前言

在以往的应用中,如果要更改应用的配置,要让配置生效必须重启应用程序。在Spring Cloud Config中我们可以刷新配置属性而不用重启应用。

这1节说明在Spring Cloud Config如何手动刷新配置属性。

手动刷新配置属性

1.需要引入spring boot-actuator依赖(用到/refresh端点)

1
2
3
4
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

2.在Bean上增加@RefreshScope注解

比如:

1
2
3
4
5
6
7
8
9
10
11
12
13
@Controller
@RequestMapping("/user")
@RefreshScope
public class UserController {
@Value("${my.custom.message}")
private String customeMessage;

@GetMapping("/customMsg")
@ResponseBody
public String getCustomeMessage() {
return this.customeMessage;
}
}

Ok,准备工作完毕!

先来看看my.custom.message原来的配置

现在我们修改git仓库中配置文件的my.custom.message的配置项。

我们将value修改为:

1
my.custom.message=Hello,This message is changed!!!

现在通过/refresh刷新配置属性。

返回结果表示my.custom.message配置有更新。

现在在访问/user/customeMsg

可以看到,已经使用了刚刚更新的配置。

注意

1.默认spring-boot-acturator开启了安全认证,这里作为演示将其关闭(management.security.enabled=false)。

2.如果有很多个微服务,使用手动刷新配置的方式就不太合适了。