Spring Cloud Config 为分布式系统中的外部化配置提供服务器和客户端支持。使用 Config Server,您可以在一个中心位置管理所有环境中应用程序的外部属性。客户端和服务器上的概念与 Spring 和抽象的映射相同,因此它们非常适合 Spring 应用程序,但可以与以任何语言运行的任何应用程序一起使用。当应用程序在部署管道中从开发到测试再到生产时,您可以管理这些环境之间的配置,并确保应用程序在迁移时拥有运行所需的一切。服务器存储后端的默认实现使用 git,因此它可以轻松支持配置环境的标记版本,并且可以访问用于管理内容的各种工具。添加替代实现并将它们插入 Spring 配置很容易。EnvironmentPropertySource
特征
Spring Cloud Config Server 功能:
HTTP,用于外部配置的基于资源的 API(名称-值对或等效的 YAML 内容)
加密和解密属性值(对称或非对称)
使用@EnableConfigServer
Config Client 功能(用于 Spring 应用程序):
绑定到配置服务器并使用远程属性源初始化 SpringEnvironment
加密和解密属性值(对称或非对称)
开始
只要 Spring Boot Actuator 和 Spring Config Client 位于类路径上,任何 Spring Boot 应用程序都会尝试联系配置server 上,默认值为 。如果您想更改此默认值,您可以在系统属性或环境变量中或通过系统属性或环境变量进行设置。http://localhost:8888spring.cloud.config.urispring.cloud.config.uribootstrap.[yml | properties]
@Configuration
@EnableAutoConfiguration
@RestController
public class Application {
@Value("${config.name}")
String name = "World";
@RequestMapping("/")
public String home() {
return "Hello " + name;
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
示例中的值(或您以正常的 Spring Boot 方式绑定到的任何其他值)可以来自本地配置或远程配置服务器。默认情况下,配置服务器将优先。要查看这一点,请查看应用程序中的端点并查看属性源。config.name/envconfigServer
要运行您自己的服务器,请使用依赖项 和 。如果您设置了应用程序将在端口 8888 上运行,并提供来自示例存储库的数据。您需要 a 来查找满足自己需求的配置数据(默认情况下,它是 git 存储库的位置,可以是本地 URL)。spring-cloud-config-server@EnableConfigServerspring.config.name=configserverspring.cloud.config.server.git.urifile:..