Spring Cloud Config
Spring Cloud Config为分布式系统中的外部化配置提供服务器和客户端支持。使用Config Server,您可以集中管理所有环境中应用程序的外部属性。客户端和服务器上的概念与SpringEnvironment
和PropertySource
抽象,因此它们非常适合Spring应用程序,但可以与以任何语言运行的任何应用程序一起使用。当应用程序从开发人员迁移到测试人员并进入生产过程时,您可以管理这些环境之间的配置,并确保应用程序具有在迁移时需要运行的所有内容。服务器存储后端的默认实现使用git,因此它轻松支持配置环境的标记版本,并且可以通过各种工具来访问这些内容来管理内容。添加替代实现并将其插入Spring配置很容易。
特征
Spring Cloud Config Server功能:
-
HTTP,用于外部配置的基于资源的API(名称-值对,或等效的YAML内容)
-
加密和解密属性值(对称或不对称)
-
使用以下命令可轻松嵌入到Spring Boot应用程序中
@EnableConfigServer
Config Client功能(用于Spring应用程序):
-
绑定到Config Server并
Environment
使用远程属性源初始化Spring -
加密和解密属性值(对称或不对称)
入门
只要Spring Boot Actuator和Spring Config Client在类路径上,任何Spring Boot应用程序都将尝试与配置服务器联系http://localhost:8888
,默认值为
spring.cloud.config.uri
。如果要更改此默认值,可以spring.cloud.config.uri
在bootstrap.[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);
}
}
值config.name
的样品中(或绑定到在Spring启动方式的任何其他值)可以来自本地配置或远程配置服务器。默认情况下,配置服务器将具有优先权。要查看此内容/env
,请查看应用程序中的端点并查看configServer
属性源。
要运行自己的服务器,请使用spring-cloud-config-server
依赖项和@EnableConfigServer
。如果设置,则spring.config.name=configserver
该应用程序将在端口8888上运行,并提供来自示例存储库的数据。您需要根据spring.cloud.config.server.git.uri
自己的需要定位配置数据(默认情况下,它是git存储库的位置,并且可以是本地file:..
URL)。