I have the following application.yml file:

---
spring:
  profiles: a & b
test1: 1
test2: 1

---
spring:
  profiles: a & b
test1: 2

---
spring:
  profiles: a & b & c
test2: 2

---
spring:
  profiles: a
test3: 1

---
spring:
  profiles: a
test3: 2

Based on documentation https://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and-configuration.html#howto-change-configuration-depending-on-the-environment, I would expect Later values override earlier values

I'm running the application with profile a, b, and c. However, I'm getting 2 for test3 (expected), but I'm getting 1 for both test1 and test2. So the ordering is opposite when spring.profiles contains a single profile vs an expression.

This works as expected if profiles are comma-separated, but not using profile expression.

Comment From: mbhave

@kzwang We have overhauled processing of configuration files and profiles in 2.4.x. This should work as expected now with the 2.4.0-SNAPSHOTs. With multi-document files, later documents will override the properties defined in earlier ones. Could you give it a try with the latest snapshots and let us know if this works for you?

Comment From: kzwang

Thanks @mbhave , just did a quick test with 2.4.0-SNAPSHOT and it works as expected