Hello I have a spring cloud config server setup. I have multiple profiles(environments)- dev,prod, test etc.
the contents of bootstrap.properties on a config client side are-
spring.application.name=hazelcast,kafka.
....
.... including uri of config server.
Now in my repository which the config server is pointing to, there is application.properties in addition to environment specific application-dev.properties, application-prod.properties etc. I also have hazelcast-dev.properties, hazelcast-prod.properties, kafka-dev.properties, kafka-prod.properties etc.
When i run my config client spring boot application with profiles.active set as dev. The config client is able to retrieve the following files from the server-
1.application.properties.
2.application-dev.properties.
3.hazelcast-dev.properties.
4.kafka-dev.properties.
And when i run with prod profiles active the corresponding prod files are retrieved( the values in them are added to spring's Environment).
Now this works and thats good, but i would like to understand the logic behind it. Is spring.application.name specifically meant for this?
I went through the documentation and things weren't absolutely clear regarding it.
Thank you in advance!
EDIT-
https://cloud.spring.io/spring-cloud-static/spring-cloud.html#_application_context_hierarchies
The Section Bootstrap Application Context in the above link has almost answered my question but would appreciate someone to just confirm it.
application.propertiesto your application, since the filename doesn't refer to any specific application. I'd have expected only #3 (and maybe also #4) to be served. - Peter Wippermann