2014-10-15 16 views
6

Chcę uruchomić mój program z java ... -Denv=prod ... i mająJak używać systemowej zmiennej środowiskowej jako części wartości @PropertySource?

@PropertySource("classpath:/settings/$idontknowwhat$/database.properties")` 

właściwości odczytać pliku: /settings/prod/database.properties

Próbowałem, używając #{systemProperties['env']} ale nie został rozwiązany z wyjątkiem:

Could not open ServletContext resource ['classpath:/settings/#{systemProperties['env']}/database.properties] 

Odpowiedz

7

Found mogę po prostu użyć

@PropertySource("classpath:/settings/${env}/database.properties") 
+0

Jeśli działa, możesz oznaczyć odpowiedź jako zaakceptowaną. – angelcervera

+0

Niestety, Maven nie widzi tego $ {env}, więc należy wybrać inny sposób. Może conf Maven? Rzeczywiście, tam, gdzie nie jest wymagane rozmieszczenie mavenów, to działa. –

+0

Jak ma się tutaj do czynienia z maven? Chodzi o to, że Spring rozwiązuje źródło właściwości w oparciu o parametr wiersza poleceń dostarczony podczas uruchamiania aplikacji. – Czar

Powiązane problemy