返回
软件架构 - 简析Spring Cloud Config分布式集中配置中心(下)
后端
2024-02-19 10:52:20
源码
@RestController
@RefreshScope
public class ConfigController {
@Autowired
private ConfigurableApplicationContext context;
@Value("${username}")
private String username;
@Value("${password}")
private String password;
@Value("${message}")
private String message;
@GetMapping("/config")
public String config() {
return "username: " + username + ", password: " + password + ", message: " + message;
}
@GetMapping("/refresh")
public String refresh() {
context.refresh();
return "配置已刷新";
}
}
添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
在Controller上添加注解@RefreshScope
@RestController
@RefreshScope
public class ConfigController {
// ...
}
这个注解的作用是让Controller在配置更改时得到特殊的处理,从而可以自动更新配置信息。
演示功能
-
启动项目(启动两个,一个是Config Server,一个是Config Client)
-
访问Config Server的
/config
接口,查看配置信息 -
修改配置信息,然后刷新Config Server的
/refresh
接口 -
访问Config Client的
/config
接口,查看配置信息
总结
Spring Cloud Config是一种分布式配置中心,主要功能是集中存储和管理微服务的配置信息。它提供了多种特性,包括:
- 分布式存储:配置信息存储在分布式存储系统中,如Git、SVN、Consul等。
- 集中管理:所有配置信息都集中存储在一个地方,便于管理和维护。
- 动态刷新:配置信息可以动态刷新,无需重启应用程序。
- 安全控制:配置信息可以进行安全控制,如加密、权限控制等。
- Spring Cloud Config是Spring Cloud生态系统中的一个重要组件,它可以帮助我们轻松管理微服务的配置信息。