java - activeprofiles - spring profile include
ConfiguraciĆ³n del perfil activo predeterminado en Spring-boot (5)
Quiero que mi perfil activo predeterminado sea de production
si no está configurado -Dspring.profiles.active
.
Intenté lo siguiente en mi application.properties
pero no funcionó:
spring.profiles.default=production
Spring-boot version = 1.3.5.RELEASE
Lo hago de esta manera
System.setProperty("spring.profiles.default", "dev");
en el principio de la main(...)
Lo que está haciendo aquí es configurar el perfil predeterminado predeterminado (el perfil que se usa en cualquier bean si no especifica la anotación @Profile
) para que sea de production
.
Lo que realmente necesita hacer es configurar el perfil activo predeterminado, que se realiza de la siguiente manera:
spring.profiles.active=production
Pon esto en la App.java:
public static void main(String[] args) throws UnknownHostException {
SpringApplication app = new SpringApplication(App.class);
SimpleCommandLinePropertySource source = new SimpleCommandLinePropertySource(args);
if (!source.containsProperty("spring.profiles.active") &&
!System.getenv().containsKey("SPRING_PROFILES_ACTIVE")) {
app.setAdditionalProfiles("production");
}
...
}
Así es como se hace en JHipster.
Si estás usando maven, yo haría algo como esto:
Siendo la producción tu perfil por defecto:
<properties>
<activeProfile>production</activeProfile>
</properties>
Y como ejemplo de otros perfiles:
<profiles>
<!--Your default profile... selected if none specified-->
<profile>
<id>production</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<activeProfile>production</activeProfile>
</properties>
</profile>
<!--Profile 2-->
<profile>
<id>development</id>
<properties>
<activeProfile>development</activeProfile>
</properties>
</profile>
<!--Profile 3-->
<profile>
<id>otherprofile</id>
<properties>
<activeProfile>otherprofile</activeProfile>
</properties>
</profile>
<profiles>
En tu application.properties tendrás que configurar:
spring.profiles.active=@activeProfile@
Esto me funciona cada vez, espero que resuelva tu problema.
añadir --spring.profiles.active=production
Ejemplo:
java -jar file.jar --spring.profiles.active=production