Spring Cloud Config

Spring Cloud Config在分布式系统中为外部配置提供服务端和客户端支持。通过Config Server你可以集中管理应用程序的外部配置文件。客户端和服务端的键值对概念与Spring EnvironmentPropertySource 相同,所以十分适合Spring应用,另一方面可以适用于任何语言的应用程序。作为一个应用程序将通过部署管道从开发到测试到生产,你可以管理这些环境的配置,可以确定应用都需要运行时迁移。服务器的后端存储的默认实现使用Git,所以容易支持标记版本的配置环境,以及一系列管理工具访问内容。它很容易添加替代的实现,并将它们插入到Spring配置中。

For full documentation visit spring cloud config.

Features

Spring Cloud Config Server features:

  • HTTP API的外部资源配置(名称-值对,或等效的YAML内容)
  • 对属性值(对称或非对称)进行加密和解密
  • 使用@EnableConfigServer注解嵌入Spring Boot应用

Config Client features (for Spring applications):

  • 绑定到配置服务器,并使用远程属性源初始化Spring环境
  • 对属性值(对称或非对称)进行加密和解密

Quick Start

项目中使用spring-cloud-config推荐基于一个依赖管理系统—下面的代码段可以被复制和粘贴到您的构建。需要帮助吗?看看我们基于MavenGradle构建的入门指南。

  1. <dependencyManagement>
  2. <dependencies>
  3. <dependency>
  4. <groupId>org.springframework.cloud</groupId>
  5. <artifactId>spring-cloud-config</artifactId>
  6. <version>1.1.1.RELEASE</version>
  7. <type>pom</type>
  8. <scope>import</scope>
  9. </dependency>
  10. </dependencies>
  11. </dependencyManagement>
  12. <dependencies>
  13. <dependency>
  14. <groupId>org.springframework.cloud</groupId>
  15. <artifactId>spring-cloud-starter-config</artifactId>
  16. </dependency>
  17. </dependencies>

只要classpath中包含Spring Boot Actuator和Spring Config Client,Spring Boot应用将尝试连接配置服务http://localhost:8888spring.cloud.config.uri默认值)

  1. @Configuration
  2. @EnableAutoConfiguration
  3. @RestController
  4. public class Application {
  5. @Value("${config.name}")
  6. String name = "World";
  7. @RequestMapping("/")
  8. public String home() {
  9. return "Hello " + name;
  10. }
  11. public static void main(String[] args) {
  12. SpringApplication.run(Application.class, args);
  13. }
  14. }

范例中config.name的值(或任何其他值)可以来自本地配置或从远程配置服务器。配置服务器将优先默认。在应用程序中看/env端点,看configServer资源文件。

要想运行你的服务,需要依赖spring-cloud-config-server并且使用@EnableConfigServer注解。如果设置spring.config.name=configserver,应用将在8888端口启动,数据来自样本库。你需要spring.cloud.config.server.git.uri为您自己的需求找到配置数据(默认情况下它是一个Git仓库,并且可以是一个本地文件路径 file:..)

Sample Projects

Config Server

Config Clients