2015-04-20 23 views
6

Mam aplikację Spring-Boot, która jest skonfigurowana z plikiem yml. Czy możliwe jest zastąpienie tych właściwości podczas wykonywania słoika? Na przykład powiedzmy, że mam zmienną wejściową w pliku yml ustawioną na user1 i chcę wykonać jar z user2. Czy można zrobić coś takiego?Nadpisanie konfiguracji yml w rozruchu sprężynowym z argumentami wiersza poleceń

java -jar --input=user2 
+0

Według dokumentów jest to możliwe le http://docs.spring.io/spring-boot/docs/1.2.3.RELEASE/reference/htmlsingle/#boot-features-external-config-command-line-args Czy próbowałeś? –

+0

Tak, jest to możliwe. Nadpisuję mój port tomcat zdefiniowany w pliku application.yml jako serwer: port: $ {port: 8080} przy użyciu --server.port = 8090 – ufdeveloper

Odpowiedz

1

Aby opracować answer by cLyric, można to zrobić:

java -jar yourapp.jar --input=user2 

Lub jeśli chcesz, aby zapewnić za pomocą JSON, można zrobić

java -jar yourapp.jar --spring.application.json='{"input":"user2"}' 

lub jeśli jesteś w UNIX/linux,

SPRING_APPLICATION_JSON='{"input":"user2"}' java -jar yourapp.jar 
+0

W moim projekcie nie działa on w "java -jar app.jar --input = user2 "ale działa dobrze z" java -Dinput = user2 -jar app.jar ". Ale z drugą komendą nie można przesłonić konfiguracji w application.properties. –

+0

@ free 斩 drugie polecenie jest inne, nie związane z wiosennym rozruchem. Powinieneś prawdopodobnie otworzyć inne pytanie, jeśli standardowy styl '--input' z jakiegoś powodu nie działa. – eis

+0

http://stackoverflow.com/questions/42244380/override-yml-configuration-in-spring-boot-with-command-line-arguments-notwork- –