2017-03-09 2 views
-1

Ich habe eine separate Feder yaml Konfigurationsdatei für jedes Profil.So erhalten Sie den Namen des Frühlingsprofils von Java

Ich brauche von einer Nachkommenklasse CommandLineRunner, um das Profil zu lesen und das entsprechende Skript auszuführen.

Gibt es eine Möglichkeit von Java, den Namen des Umgebungsprofils zu erhalten?

Ich habe dies versucht:

environment.getActiveProfiles(); 

aber nur ein leeres String-Array zurück.

Antwort

2
  1. Haben Sie ein aktives Profil? wenn nein, zeigt es nichts.
  2. Sie können auch environment.getProperty("spring.profiles.active") verwenden, um aktive Profile zu erhalten.
0

Diese Methode funktioniert gut für mich

private static final String SPRING_PROFILES_ACTIVE = "SPRING_PROFILES_ACTIVE";  

    protected void setSpringProfile(ServletContext servletContext) { 
    if(null!= System.getenv(SPRING_PROFILES_ACTIVE)){ 
      profile=System.getenv(SPRING_PROFILES_ACTIVE); 

    }else if(null!= System.getProperty(SPRING_PROFILES_ACTIVE)){ 
     profile=System.getProperty(SPRING_PROFILES_ACTIVE); 

    }else{ 
     profile="local"; 
    } 

    log.info("***** Profile set ---> "+ profile);  
    } 

ich beide System.getenv und System.getProperty bin mit, weil ich beobachtet habe, dass in meinem lokalen System System.getProperty gearbeitet, aber auf meinem Docker Container-System. getenv() hat gearbeitet.

Auch ich bin standardmäßig das Profil zu "lokalen" Profil, wenn nichts eingestellt wurde.

Verwandte Themen