Spring Cloud Config

Spring Cloud Config为分布式系统中的外部化配置提供服务器和客户端支持。使用Config Server,您可以集中管理所有环境中应用程序的外部属性。客户端和服务器上的概念都与Spring Environment和PropertySource抽象相同,因此它们非常适合Spring应用程序,但可以与任何语言运行的应用程序一起使用。当应用程序通过从开发环境到测试环境和生产环境的部署管道时,您可以管理这些环境之间的配置,并确保应用程序在迁移时需要运行所需的一切。

服务器存储后端的默认实现使用git,因此它很容易支持配置环境的标记版本,以及可以通过各种工具来访问内容。很容易添加替代实现,并用Spring配置插入它们。

Spring Cloud Config Server的特性有:

HTTP,用于外部配置的基于资源的API(名称 - 值对或等效的YAML内容)

加密和解密属性值(对称或不对称

使用@EnableConfigServer可以轻松地嵌入到Spring Boot应用程序中

Spring Cloud Config Client的特性(针对Spring application):

绑定配置服务器,并使用远程属性资源初始化spring的环境

加解密属性值(对称和非对称)

快速入门

推荐使用maven或gradle进行项目依赖管理构建。

org.springframework.cloud

spring-cloud-config

1.3.0.M1

pom

import

org.springframework.cloud

spring-cloud-starter-config

spring-milestones

Spring Milestones

https://repo.spring.io/libs-milestone

false

只要Spring Boot Actuator和Spring Config Client在类路径上,任何Spring Boot应用程序将尝试联系http:// localhost:8888(spring.cloud.config.uri的默认值)上的配置服务器:

@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 Boot方式中绑定的任何其他值)可以来自本地配置或来自远程配置服务器。 默认情况下,远程配置服务器将优先。 要看看这个应用程序中的/ env端点,并查看configServer属性源。

要运行自己的服务器,请使用spring-cloud-config-server依赖项和@EnableConfigServer。 如果设置了spring.config.name = configserver,应用程序将在端口8888上运行,并从示例仓库提供数据。 你需要一个spring.cloud.config.server.git.uri来定位你自己需要的配置数据(默认是git仓库的位置,可以是本地文件:.. URL)。

你可能感兴趣的:(Spring Cloud Config)