Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

338
Visualizações
¿Cómo configurar el perfil activo mediante programación para cualquier entorno?

Quiero establecer un host de perfil activo dependiente para cualquier entorno y no puedo encontrar un gancho independiente del entorno.

La siguiente fábrica establecerá el perfil activo antes de que se construya el contexto de la aplicación.

/META-INF/spring.factories

 org.springframework.context.ApplicationContextInitializer=MyApplicationContextInitializer

MiAplicaciónContextInitializer.java

 public class MyApplicationContextInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> { @Override public void initialize(ConfigurableApplicationContext ca) { ConfigurableEnvironment environment = ca.getEnvironment(); environment.addActiveProfile("myHost"); } }

Si JUnit ejecuta este ejemplo en un entorno simulado...

*Prueba.java

 ... @RunWith(SpringRunner.class) @SpringBootTest @AutoConfigureMockMvc ...

... siguiente será registrado.

 ... ... RestControllerTests : The following profiles are active: myHost ...

¡pero el perfil myHost no está activo y el perfil predeterminado se usará en el contexto de JUnit!

Una prueba como Java Application y JUnit con argumentos VM funciona ...

 -Dspring.profiles.active=myHost

Utilizo una aplicación spring-boot-starter-web empaquetada en guerra y el perfil programático se configurará y usará en cualquier entorno

  • Aplicación Java
  • JUnit
  • Contenedor de servlet

¿Cómo configuro el perfil mediante programación para cualquier entorno?

No quiero usar argumentos de VM o variables de entorno porque el nombre de host actual establecerá el perfil.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

La respuesta más simple después de mucho googlear :)

 @SpringBootApplication public class ExampleMain2 { public static void main(String[] args) { ConfigurableEnvironment environment = new StandardEnvironment(); environment.setActiveProfiles("dev"); SpringApplication sa = new SpringApplication(ExampleMain2.class); sa.setEnvironment(environment); sa.setAdditionalProfiles("remote","live"); sa.run(args); } }
over 4 years ago · Santiago Trujillo Relatório

0

Tuve el mismo problema y finalmente lo resolví implementando la interfaz ActiveProfilesResolver.

En tu caso podrías hacer algo como esto:

 public class MyActivateProfilesResolver implements ActiveProfilesResolver { @Override public String[] resolve(Class<?> testClass) { // some code to find out your active profiles return new String[] {"myHost"}; } }

Y luego necesita vincular su prueba con su resolución de esta manera:

 @ActiveProfiles(resolver = MyActivateProfilesResolver.class)
over 4 years ago · Santiago Trujillo Relatório

0

No creo que exista tal cosa como configurar el perfil activo de forma dinámica (mediante programación) en tiempo de ejecución una vez que la aplicación se está ejecutando, cualquier modificación del perfil no tendrá ningún efecto en los beans cargados y los archivos de propiedades.

Sin embargo, antes de ejecutar la aplicación, puede configurar los perfiles disponibles de la aplicación. por ejemplo:

 @SpringBootApplication public class DemoApplicationWithSysProperty { public static void main(String[] args) { System.setProperty(AbstractEnvironment.ACTIVE_PROFILES_PROPERTY_NAME, PROFILE_NAME); SpringApplication.run(DemoApplicationWithSysProperty.class, args); } }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda