← Back to Questions
Microservices

What is Spring Cloud Config Server?

Learn What is Spring Cloud Config Server? with simple explanations, real-time examples, interview tips and practical use cases.

What is Spring Cloud Config Server?

Spring Cloud Config Server is a centralized configuration management tool used in Microservices Architecture to store, manage, and distribute configuration properties for multiple microservices from a single centralized server.

It is part of:

Spring Cloud
    

and is widely used in enterprise microservices applications to manage:

  • Application properties
  • Database configurations
  • Environment-specific settings
  • Secrets and credentials
  • External service URLs

Why Spring Cloud Config Server is Important

In Microservices Architecture:

  • Many services exist
  • Each service requires configuration
  • Managing configurations separately becomes difficult

Without centralized configuration:

  • Configuration duplication increases
  • Updating properties becomes difficult
  • Environment management becomes complex
  • Security risks increase

Spring Cloud Config Server solves these problems by centralizing all configurations.


Simple Banking Example

Suppose a banking platform contains:

  • Payment Service
  • Account Service
  • Loan Service
  • Notification Service
  • Fraud Detection Service

Each service requires:

  • Database URL
  • JWT secret
  • Kafka configuration
  • Redis configuration
  • API URLs

Instead of storing configuration inside every microservice:

  • Spring Cloud Config Server stores everything centrally

All services fetch configurations from Config Server during startup.


Without Spring Cloud Config Server

Payment Service -> application.properties
Account Service -> application.properties
Loan Service -> application.properties
Notification Service -> application.properties
    

Configuration duplication exists everywhere.


With Spring Cloud Config Server

                Config Server
                      |
------------------------------------------------
|             |            |                   |
Payment    Account      Loan         Notification
Service    Service      Service       Service
    

Centralized configuration management becomes easier.


How Spring Cloud Config Server Works

Microservice Starts
       |
Requests Configurations
       |
Config Server Fetches Properties
       |
Microservice Loads Configurations
    

Main Components of Spring Cloud Config

Component Description
Config Server Centralized configuration provider
Config Repository Stores configuration files
Config Client Microservice consuming configurations

Where Configurations are Stored

Spring Cloud Config Server commonly stores configurations in:

  • Git repositories
  • Local file systems
  • Vault systems
  • Cloud configuration services

Git Repository Example

config-repo/

    application.yml

    payment-service.yml

    account-service.yml

    loan-service.yml
    

Config Server reads configuration files from Git repository.


Real Banking Configuration Example

payment-service.yml

server:

  port: 8081

spring:

  datasource:

    url: jdbc:mysql://bank-db/payment

jwt:

  secret: bank-secret
    

account-service.yml Example

server:

  port: 8082

spring:

  datasource:

    url: jdbc:mysql://bank-db/account
    

Environment-Specific Configurations

Applications usually contain:

  • Development Environment
  • Testing Environment
  • Staging Environment
  • Production Environment

Each environment requires separate configurations.


Environment File Example

payment-service-dev.yml

payment-service-test.yml

payment-service-prod.yml
    

Banking Production Example

Development Database

jdbc:mysql://localhost/dev-db
    

Production Database

jdbc:mysql://prod-bank-db/payment
    

Spring Cloud Config Architecture

Git Repository
       |
Spring Cloud Config Server
       |
------------------------------------------
|          |          |                 |
Payment   Account    Loan       Notification
Service   Service    Service       Service
    

Spring Cloud Config Server Dependency

<dependency>

    <groupId>
        org.springframework.cloud
    </groupId>

    <artifactId>
        spring-cloud-config-server
    </artifactId>

</dependency>
    

Enable Config Server

@EnableConfigServer

@SpringBootApplication

public class ConfigServerApplication {

}
    

Config Server Properties

server:

  port: 8888

spring:

  cloud:

    config:

      server:

        git:

          uri:
            https://github.com/bank/config-repo
    

What Does Above Configuration Mean?

  • Config Server runs on port 8888
  • Configurations are fetched from Git repository

Client Microservice Configuration

spring:

  application:

    name: payment-service

  config:

    import:
      optional:configserver:http://localhost:8888
    

What Happens Internally?

Payment Service Starts
       |
Calls Config Server
       |
Fetches payment-service.yml
       |
Loads Properties
    

Accessing Configurations

Configurations can be accessed using:

http://localhost:8888/payment-service/default
    

Response Example

{
  "name": "payment-service",
  "profiles": ["default"],
  "propertySources": [
    {
      "source": {
        "server.port": 8081
      }
    }
  ]
}
    

Dynamic Configuration Refresh

One major advantage:

  • Configurations can refresh dynamically
  • Service restart may not be required

Refresh Scope Example

@RefreshScope

@RestController

public class PaymentController {

}
    

Banking Example for Dynamic Refresh

Suppose payment timeout changes:

timeout = 5 Seconds
    

updated to:

timeout = 10 Seconds
    

Configurations refresh dynamically without restarting services.


Spring Boot Actuator Refresh Endpoint

POST /actuator/refresh
    

This refreshes updated configurations.


Security in Config Server

Sensitive information includes:

  • Passwords
  • JWT secrets
  • API keys
  • Database credentials

Spring Cloud Config supports:

  • Encryption
  • Secure secret management

Encrypted Property Example

password: '{cipher}A1B2C3D4'
    

Vault Integration Example

Config Server can integrate with:

  • HashiCorp Vault
  • AWS Secrets Manager
  • Azure Key Vault

Benefits of Spring Cloud Config Server

  • Centralized configuration management
  • Environment-specific configurations
  • Dynamic refresh support
  • Reduced duplication
  • Improved security
  • Easy configuration updates

Real Banking Use Cases

  • Database configuration management
  • JWT secret management
  • Kafka broker configurations
  • Payment gateway URLs
  • Fraud engine configurations
  • Redis cache configurations

Spring Cloud Config with Kubernetes

In Kubernetes environments:

  • Config Server works with ConfigMaps
  • Secrets integrate with Vault systems

Kubernetes Banking Example

apiVersion: v1

kind: ConfigMap

metadata:

  name: payment-config
    

Challenges of Spring Cloud Config Server

  • Single point of failure
  • Network dependency
  • Security risks if compromised
  • Config server maintenance overhead

Single Point of Failure Problem

If Config Server becomes unavailable:

  • New services may fail to start

Therefore:

  • High availability setup is important

How High Availability is Achieved

  • Multiple Config Server instances
  • Load balancing
  • Git repository replication
  • Local configuration caching

Best Practices for Spring Cloud Config Server

  • Store secrets securely
  • Use Git version control
  • Enable encryption
  • Implement authentication
  • Use environment-specific configurations
  • Enable high availability

Spring Cloud Config vs Local Configuration

Feature Spring Cloud Config Local Configuration
Management Centralized Distributed
Scalability High Limited
Security Better Harder to Manage
Configuration Updates Easier Complex

Professional Interview Answer

Spring Cloud Config Server is a centralized configuration management solution used in Microservices Architecture to store, manage, and distribute configuration properties for multiple services from a centralized server. It helps simplify configuration management, supports environment-specific configurations, enables dynamic configuration refresh, and improves security. Spring Cloud Config Server commonly stores configurations in Git repositories and is widely used in banking systems, cloud-native applications, and enterprise microservices architectures.


Summary

Spring Cloud Config Server is one of the most important tools used in modern Microservices and Distributed Systems for centralized configuration management.

It helps manage configurations efficiently across multiple environments and services while improving scalability, maintainability, and operational efficiency.

Banking systems, payment gateways, e-commerce platforms, cloud-native applications, and enterprise distributed systems heavily rely on Spring Cloud Config Server for secure and scalable configuration management.

Understanding Spring Cloud Config Server is essential for backend developers, DevOps engineers, cloud architects, and microservices developers building scalable distributed applications.

Why this Microservices question is important?

This interview question helps candidates understand real-time backend development concepts, practical problem solving, coding fundamentals, system design basics and production-ready application behavior.

Practice this question carefully for Java backend roles, Spring Boot developer interviews, microservices interviews, company interviews and full-stack developer preparation.

About the Author

Naresh Kumar is a Senior Java Backend Engineer with experience building enterprise applications using Java, Spring Boot, Microservices, Docker, Kubernetes and Cloud technologies.