Spring Boot Profiles, Overriding Properties, and spring.profiles.include

June 20th 2020

I've been using Spring Boot for a while now, and I can't believe I didn't realize this behavior with properties and profiles before. Given an application.yml like this:

test: X

  profiles: a

test: A

  profiles: b
  profiles.include: a

test: B

Obviously if running with the "a" profile, the property test will be "A". But what happens when running with the "b" profile?

java -Dspring.profiles.active=b test.jar

The answer is again "a". In other words, when you include another profile, it overrides any properties from it over top of the active one. I always assumed that it would be the other way around, but that's not the case.

I'm an "old" programmer who has been blogging for almost 20 years now. In 2017, I started Highline Solutions, a consulting company that helps with software architecture and full-stack development. I have two degrees from Carnegie Mellon University, one practical (Information and Decision Systems) and one not so much (Philosophy - thesis here). Pittsburgh, PA is my home where I live with my wife and 3 energetic boys.
I recently released a web app called TechRez, a "better resume for tech". The idea is that instead of sending out the same-old static PDF resume that's jam packed with buzz words and spans multiple pages, you can create a TechRez, which is modern, visual, and interactive. Try it out for free!
Got a Comment?
Comments (0)

 None so far!