Spring Profiles application properties order

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP


Spring Profiles application properties order



We have many environments that have multiple active Spring profiles, but what is the precedence of the application-{profile}.yml files?



If I have spring.profiles.active=test-us-west-2-p1, test-us-west-2, test


spring.profiles.active=test-us-west-2-p1, test-us-west-2, test



In what order do the files application-test.yml, application-test-us-west-2.yml, application-test-us-west-2-p1.yml get loaded? If I have the same property in each file, which "wins"?


application-test.yml, application-test-us-west-2.yml, application-test-us-west-2-p1.yml



Also, has this changed from Spring-Boot 1.5.x to 2.x? It seems like it may have.




1 Answer
1



The profile's properties are loaded in the same order as you specify them, and if the same property is defined in different profiles the last one wins.



This behavior applies to both Spring Boot versions 1.5.x and 2.x, and if I recall correctly, it applies to all versions of Spring.



Spring always loads appication.yml. And afterwards, if some profile is specified, it will load that profile's property file. And if after that profile another profile is specified, it will load that profile's propperty file. Always overriding current properties's value with the new one.



So, let's say you have profile1 and profile2. And you have these property files:



application.yml:


property1: bob
property2: alice
property3: eve



application-profile1.yml:


property2: alice1
property3: eve1



application-profile2.yml:


property3: eve2



And you start your application with: spring.profiles.active=profile1, profile2


spring.profiles.active=profile1, profile2



Your will get:


property1: bob
property2: alice1
property3: eve2






By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Popular posts from this blog

Visual Studio Code: How to configure includePath for better IntelliSense results

Spring cloud config client Could not locate PropertySource

Makefile test if variable is not empty