Spring cloud config match profile

Tags: , , ,

I have a hierarchy structure of applications files in my git repository as follows:

uri: https://bitbucket.org/repositorios-company/configuration-files



In config project yml file:

    port: 8888
        name: config-server
                    username: ###### 
                    uri: https://bitbucket.org/repositorios-company/cup-configuration-files
                    searchPaths: '{application}'


  1. When I try to access the file of development by url http://localhost:8888/authorization-service/development spring load two files and not only one as I expected:
2021-01-13 10:34:40.549  INFO 141562 --- [nio-8888-exec-1] o.s.c.c.s.e.NativeEnvironmentRepository  : Adding property source: file:/tmp/config-repo-3531515016986363333/authorization-service/application.yml
2021-01-13 10:34:48.950  INFO 141562 --- [nio-8888-exec-2] o.s.c.c.s.e.NativeEnvironmentRepository  : Adding property source: file:/tmp/config-repo-3531515016986363333/authorization-service/application-development.yml

  1. When a client application, using the following configuration, tries to access the corresponding config file, spring only brings the application.yml file and not the file corresponding to the profile:

Client yml:


After application starts, spring cloud config log shows the default application.yml:

2021-01-13 11:09:11.346  INFO 144899 --- [nio-8888-exec-2] o.s.c.c.s.e.NativeEnvironmentRepository  : Adding property source: file:/tmp/config-repo-1131390371944673193/authorization-service/application.yml

Edited: I’ve checked if the value changed in runtime and if it has taken the values from application-development.yml, but not.

Does anybody know how can I bring only one config file to the two situations?


Three things to consider:

  1. Even though I utilized profile as “spring.profiles.active=development” Spring looks for application-dev.properties and not application-development.properties file. I utilized Spring actuator to see which profile Spring was looking for.

How to use Spring actuator


  1. Even thought two files were loaded in Spring Cloud Config, only the corresponding profile file was utilized by application client:
INFO 373818 ...NativeEnvironmentRepository  : Adding property source: file:/tmp/config-repo/authorization-service/application-dev.properties
INFO 373818 ...NativeEnvironmentRepository  : Adding property source: file:/tmp/config-repo/authorization-service/application.properties

But if you need an application only to consume the file corresponding to it profile, when access http://localhost:8888/authorization-service/dev, just remove the default application.yml from git repository.

  1. When using Spring Cloud Config utilize bootstrap.{yml|properties} and not application.{yml|properties} in your application client.

What is the difference between putting a property on application.yml or bootstrap.yml in spring boot?

Source: stackoverflow