Inną opcją, jeśli masz zautomatyzowane wdrożenia lub CI, jest wstawianie argumentów w czasie kompilacji z maven (lub podobnym) i właściwościami. Sądzę, że jest trochę bardziej zoptymalizowany, ponieważ nie musisz czytać pliku z S3?
Na przykład można mieć config/env1/app.properties
i config/env2/app.properties
WITH Maven można tworzyć profile, które załadować odpowiedni config jak:
...
<profiles>
<profile>
<id>env1</id>
<build>
<resources>
<resource>
<directory>config/env1</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
</profile>
<profile>
<id>env2</id>
<build>
<resources>
<resource>
<directory>config/env2</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
</profile>
</profiles>
...
W kodzie przeczytać rekwizyty jak zwykle props.load(ClassLoader.getSystemResourceAsStream("app.properties"));
W Twoja automatyzacja pozwoli Ci zbudować mvn install -P en1
, aby przygotować Jar.
Przechowywanie tych parametrów w S3 to genialny pomysł. Ciekawe, dlaczego nie przyszło mi to do głowy :-) Dzięki. – sengbatz