Spring Cloud Config 配置中心使用指南

 更新时间:2026年03月20日 09:07:56   作者:一个差不多的先生  
Spring Cloud Config 提供了一个集中化的配置管理解决方案,支持多种配置源、动态刷新和多环境配置,通过简单的配置和依赖添加,即可快速搭建配置中心和客户端,感兴趣的可以了解一下

Spring Cloud Config 是一个强大的分布式配置中心,用于集中管理微服务架构中的配置信息。它支持多种配置源,如 Git、本地文件系统、数据库等,并提供配置的动态刷新功能。本文将详细介绍如何搭建和使用 Spring Cloud Config。

一、搭建配置中心(Config Server)

1. 创建 Config Server 项目

使用 Spring Initializr 创建一个 Spring Boot 项目,添加以下依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
</dependency>

2. 启用 Config Server

在项目的主类上添加 @EnableConfigServer 注解:

@SpringBootApplication
@EnableConfigServer
public class ConfigServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConfigServerApplication.class, args);
    }
}

3. 配置 Git 仓库

application.ymlapplication.properties 文件中配置 Git 仓库地址:

server:
  port: 8888

spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/your-repo/config-repo.git
          search-paths: '{application}'  # 按应用名查找目录
          label: master  # 默认分支

4. 启动 Config Server

运行项目后,访问 http://localhost:8888/{application}/{profile},例如:

curl http://localhost:8888/config/dev

这将返回对应应用和环境的配置信息。

二、配置客户端(Config Client)

1. 添加依赖

在客户端项目中添加以下依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency>

2. 配置客户端

在客户端项目的 bootstrap.yml 文件中配置 Config Server 的地址和环境:

spring:
  application:
    name: config-client
  cloud:
    config:
      uri: http://localhost:8888
      profile: dev
      label: master

bootstrap.yml 的加载优先级高于 application.yml,因此适合用于加载外部配置。

3. 使用配置

在客户端项目中,可以直接通过 @Value@ConfigurationProperties 注解使用配置中心的配置信息。例如:

@RestController
public class ConfigClientController {
    @Value("${config.info}")
    private String configInfo;

    @GetMapping("/config")
    public String getConfig() {
        return configInfo;
    }
}

三、核心功能

1. 配置文件的命名规则

Spring Cloud Config 支持以下几种资源路径:

  • /{application}-{profile}.yml
  • /{label}/{application}-{profile}.yml
  • /{application}/{profile}[/{label}]

例如:

  • http://localhost:8888/config-client/dev:获取 config-client-dev.yml 文件的配置。
  • http://localhost:8888/master/config-client-dev.yml:指定分支 master。

2. 配置加密与安全

为了保护敏感信息,Spring Cloud Config 支持加密配置:

  1. 配置加密密钥:
    encrypt:
      key: my-secret-key
    
  2. 加密数据:
    curl http://localhost:8888/encrypt -d "secret123"
    
  3. 使用密文:
    datasource:
      password: '{cipher}密文字符串'
    

3. 动态配置刷新

客户端可以通过调用 /actuator/refresh 端点来刷新配置:

  1. 添加 Actuator 依赖:
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    
  2. 暴露 refresh 端点:
    management:
      endpoints:
        web:
          exposure:
            include: refresh
    
  3. 调用刷新接口:
    POST http://localhost:8080/actuator/refresh
    

四、多环境支持

Spring Cloud Config 支持多环境配置,通过 spring.profiles.active 指定环境。例如:

  • config-client-dev.yml:开发环境配置
  • config-client-prod.yml:生产环境配置

客户端可以通过设置 spring.profiles.active 来加载对应环境的配置。

五、总结

Spring Cloud Config 提供了一个集中化的配置管理解决方案,支持多种配置源、动态刷新和多环境配置。通过简单的配置和依赖添加,即可快速搭建配置中心和客户端。它不仅简化了配置管理的复杂性,还提高了系统的灵活性和可维护性。

到此这篇关于Spring Cloud Config 配置中心使用指南的文章就介绍到这了,更多相关Spring Cloud Config 配置中心内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java中List的toArray()方法用法举例

    java中List的toArray()方法用法举例

    这篇文章主要介绍了java中List的toArray()方法的相关资料,toArray()方法可以将List转换为数组,但需要注意其两种形式的区别,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-11-11
  • IntelliJ IDEA的代码搁置功能实现

    IntelliJ IDEA的代码搁置功能实现

    本文主要介绍了IntelliJ IDEA的代码搁置功能实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • SpringCloud集成Micrometer Tracing的代码工程

    SpringCloud集成Micrometer Tracing的代码工程

    Micrometer Tracing 是一个用于微服务架构的追踪库,它提供了一种简单而强大的方式来收集和报告分布式系统中的性能和调用链信息,Micrometer Tracing 旨在帮助开发者和运维人员理解微服务之间的交互,本文给大家介绍了如何在 Spring Cloud 集成 Micrometer Tracing
    2024-12-12
  • 浅谈java的接口和C++虚类的相同和不同之处

    浅谈java的接口和C++虚类的相同和不同之处

    下面小编就为大家带来一篇浅谈java的接口和C++虚类的相同和不同之处。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,祝大家游戏愉快哦
    2016-12-12
  • SpringBoot项目中使用Groovy脚本的示例代码

    SpringBoot项目中使用Groovy脚本的示例代码

    本文主要介绍了SpringBoot项目中使用Groovy脚本的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Java中如何实现类的热加载和热部署详解

    Java中如何实现类的热加载和热部署详解

    在应用运行的时升级软件,无需重新启动的方式有两种,热部署和热加载,这篇文章主要介绍了Java中如何实现类的热加载和热部署的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-05-05
  • 解决IDEA2021版compiler.automake.allow.when.app.running不存在的问题

    解决IDEA2021版compiler.automake.allow.when.app.running不存在的问题

    很多文章介绍IntelliJ IDEA开启热部署功能都会写到在IntelliJ IDEA中的注册表中开启compiler.automake.allow.when.app.running选项,此选项在IntelliJ IDEA 2021.2之后的版本迁移到高级设置中,下面看下设置方法
    2021-09-09
  • Spring Boot整合Swagger2的完整步骤详解

    Spring Boot整合Swagger2的完整步骤详解

    这篇文章主要给大家介绍了关于Spring Boot整合Swagger2的完整步骤,文中通过示例代码将整合的步骤一步步介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07
  • Java多线程中synchronized的工作原理

    Java多线程中synchronized的工作原理

    这篇文章主要介绍了Java多线程中synchronized的工作原理,本期讲解 synchronized 工作的原理以及常见的锁优化机制,相信大家在看完这篇博文后对 synchronized 工作流程有一定的理解,需要的朋友可以参考下
    2023-07-07
  • spring注解识别一个接口的多个实现类方法

    spring注解识别一个接口的多个实现类方法

    下面小编就为大家带来一篇spring注解识别一个接口的多个实现类方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04

最新评论