Prerequisites:
- You should have a Spring Boot application or microservice that needs externalized configuration.
Step 1: Create a Spring Boot Project
You can create a Spring Boot project using Spring Initializr (https://start.spring.io/) or your favorite IDE. Ensure you include the “Config Server” dependency when setting up your project.
Step 2: Configure application.properties
or application.yml
You need to configure the application.properties
or application.yml
file for your Spring Boot Config Server. Here is an example application.properties
file:
spring.application.name=config-server
server.port=8888
spring.cloud.config.server.git
.uri=https://github.com/
yourusername/your-config-repo.git
spring.cloud.config.server.git
.clone-on-start=true
spring.application.name
is the name of your config server.server.port
is the port on which the config server will run.spring.cloud.config.server.git.uri
is the URI of the Git repository where you will store your configuration files.spring.cloud.config.server.git.clone-on-start
set to true
means the config server will clone the configuration repository on startup.Step 3: Create a Git Repository for Configuration
Create a Git repository (GitHub, GitLab, Bitbucket, etc.) to store your configuration files. The structure of your configuration repository should be:
config-repo/
application.properties
application-dev.properties
application-prod.properties
...
Step 4: Create Configuration Files
In the Git repository, create configuration files for your services. Each service can have its own configuration file. For example, application.properties
is the default configuration, and application-dev.properties
and application-prod.properties
are environment-specific configuration files.
Step 5: Running the Config Server
Run your Spring Cloud Config Server application using your IDE or the command line. The server will start and serve configuration data from the Git repository.
Step 6: Accessing Configuration
You can access the configuration for your microservices by making HTTP requests to the Config Server. For example, if you have a microservice named “my-service” and you want to retrieve its configuration for the “dev” environment, you can make a request like this
GET http://localhost:8888/my-service/dev
This will return the configuration properties for the “my-service” microservice in the “dev” environment.
Step 7: Integrating Microservices with the Config Server
To make your microservices use the configuration provided by the Config Server, you need to configure them to connect to the Config Server. You can do this by adding the spring-cloud-config-client
dependency and setting the spring.cloud.config.uri
property in your microservice’s configuration.
For example, in your microservice’s application.properties
:
spring.application.name=my-service
spring.cloud.config.uri=http://localhost:8888
This will make your microservice fetch its configuration from the Config Server.
Now, when you start your microservice, it will request its configuration from the Config Server.
With these steps, you can set up a Spring Cloud Config Server and configure your microservices to externalize their configuration, making it easier to manage configurations across your microservices in a distributed system.