Estoy acostumbrado a que puedo referirme a otra propiedad desde el archivo .yml usando ${...} . Así que tengo Spring Boot v2.3.0.RELEASE y siguiendo .yml:
env: dev spring: profiles: active: ${env}Pero desafortunadamente, cuando ejecuto mi aplicación veo
The following profiles are active: ${env}A pesar de que este marcador de posición funciona perfectamente en otras propiedades, por ejemplo, temas de kafka que defino como
topic: ${env}.topic_namey puedo ver en los registros que se resolvió correctamente
Kafka producer topic=dev.topi_name Parece que spring.profiles.active es una especie de excepción a esta regla, pero no puedo encontrar por qué. ¿Y cómo puedo obtener el mismo resultado (con perfil que depende de otra variable de propiedad) como está, sin variables env, claves externas, configuración en código, etc.?
Este problema se solucionó en Spring Boot 2.4.0 como parte del procesamiento del archivo de configuración actualizado (más sobre esto en las notas de la versión 2.4.0 ).
Si está interesado, puede jugar con la nueva propiedad spring.config.use-legacy-processing para ver la diferencia en cómo se procesa spring.profiles.active .