2016-11-16 27 views
5

Do tej pory mam następujące ustawienie zmiennej środowiskowej w moim ~/.bash_profile:Jak dodać aktywny profil sprężyny ze zmiennej środowiskowej?

export SPRING_PROFILES_ACTIVE=local 

To mój zestaw aktywny profil sprężyny. Ale teraz chcę dodać lokalny profil do innych profili zdefiniowanych w application.properties i nie zastąpić im.

W Spring Boot documentation znajduje się sekcja o dodawaniu aktywnego profilu, ale nic nie widzę w dodawaniu aktywnego profilu ze zmiennej środowiskowej.

Próbowałem ustawić zmienną środowiskową SPRING_PROFILES_INCLUDE, ale nie ma to żadnego wpływu.

Jak to zrobić?

P.S .: Używam Spring Boot 1.4.2.

+0

próbowałeś wykorzystując ConfigurableEnvironment http://docs.spring.io/spring-framework/docs/current/javadoc- api/org/springframework/core/env/ConfigurableEnvironment.html –

+1

Nie, nie zrobiłem tego, ale wolę użyć rozwiązania takiego jak Olszewski. –

Odpowiedz

8

profil domyślny dodawania

Można wprowadzić własną zmienną środowiskową w pliku application.properties, obok zdefiniowanych profili z wykorzystaniem wyrażenia. Na przykład, jeśli twój obecny plik wygląda tak:

spring.profiles.active=profile1,profile2 

ze zmienną zwyczaj środowisko będzie go zmienić na:

spring.profiles.active=profile1,profile2,${ADDITIONAL_APP_PROFILES:local} 

gdzie ADDITIONAL_APP_PROFILES to nazwa zmiennej środowiskowej, które można ustawić zamiast SPRING_PROFILES_ACTIVE .

Wartość local jest używana, gdy zmienna nie jest ustawiona w bieżącym środowisku. W takim przypadku zostanie uruchomiony profil o nazwie local. Jeśli nie ustawisz wartości domyślnej, a zmienna środowiskowa nie jest obecna, całe wyrażenie zostanie użyte jako nazwa aktywnego profilu.

Bez domyślnego profilu dodawania

Jeśli chcesz uniknąć aktywacji profil domyślny, można usunąć wartość zastępczą, a przecinek przed zmiennej ekspresji:

spring.profiles.active=profile1,profile2${ADDITIONAL_APP_PROFILES} 

ale w tym przypadku zestaw zmiennych w bieżącym środowisku musi zaczynać się przecinkiem:

export ADDITIONAL_APP_PROFILES=,local 
-1

To su pport środowisko bash, dostępne wartości są SPRING_PROFILES_ACTIVE i SPRING_PROFILES_DEFAULT

nie SPRING_PROFILES_INCLUDE

prawdopodobnie masz uciekać wiersza poleceń sposób -Dspring.profiles.obejmują lub pro gramatycznie trening z ConfigurableEnvironment

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/core/env/AbstractEnvironment.html#ACTIVE_PROFILES_PROPERTY_NAME

+0

Przepraszam, ale rozumiem tylko połowę Twojego posta. Czy mógłbyś to powtórzyć? –

2

następne zdanie w dokumentacji, którą powiązany:

Czasami dobrze jest mieć właściwości profilu specyficzne, które dodają do aktywnych profili zamiast wymień je. Właściwość spring.profiles.include może być używana do bezwarunkowego dodawania aktywnych profili.

Więc można uruchomić aplikację z parametrem wiersza polecenia:

-Dspring.profiles.include=${SPRING_PROFILES_INCLUDE}