¿Existe alguna posibilidad de cargar perfiles de resorte adicionales desde la configuración de Java?
Sé que puedo usar el argumento -Dspring.profile.active y también agregar perfiles a spring.profiles.include en application.properties.
Lo que necesito es poder activar perfiles desde java config. Creé PropertyPlaceholderConfigurer, donde estoy agregando algunos archivos de propiedades personalizados, que también contienen la propiedad spring.profiles.include , todas las propiedades se cargan y funcionan bien, pero Spring no activa ningún perfil que esté incluido usando esta propiedad.
@Bean public static PropertyPlaceholderConfigurer ppc() throws IOException { PropertyPlaceholderConfigurer ppc = new PropertyPlaceholderConfigurer(); ppc.setLocations(new ClassPathResource("properties/" + property + ".properties")); ppc.setIgnoreUnresolvablePlaceholders(true); return ppc; }Los perfiles de resorte activos se definen en propiedades a través de la siguiente configuración: spring.profiles.active: .
Debe enumerar en todos los archivos que importe los perfiles que activan a través de la clave de configuración anterior.
EDITAR
Primero, según la documentación oficial, la configuración spring.profiles.include es más adecuada para agregar perfiles activos incondicionalmente.
En segundo lugar, puedo suponer que PropertyPlaceholderConfigurer no es adecuado para lo que desea lograr. La documentación oficial enumera las formas en que puede externalizar la configuración . Puedes intentar usar @PropertySource :
@PropertySources({ @PropertySource(value = "classpath:application.properties"), @PropertySource(value = "classpath:other.properties", ignoreResourceNotFound = true) }) public class Application { ... } } Además, puede intentar enumerar los otros archivos de propiedades en la propiedad spring.config.location dentro de application.properties como se describe aquí .