Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Significance of Spring.application.name in Bootstrap.properties

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 that's good, but I would like to understand the logic behind it. Is spring.application.name specifically meant for this?

http://cloud.spring.io/spring-cloud-static/spring-cloud-config/2.0.0.M5/single/spring-cloud-config.html

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.

like image 970
Indraneel Bende Avatar asked Jan 16 '18 02:01

Indraneel Bende


2 Answers

It has a few different purposes. It is used as the application name when registering with a service registry such as eureka. It is also used to look up <applicationName>[-<profile>].[properties|yml] in configserver as well as configuration in consul or zookeeper.

like image 63
spencergibb Avatar answered Sep 28 '22 01:09

spencergibb


In case you deploy a Spring-project on Openshift; Spring uses it to find resources declared in configmaps with the same name inside your openshift-project.

like image 44
MRedant Avatar answered Sep 28 '22 01:09

MRedant