Ich habe das 12-Faktor-App-Manifest Ссылка gelesen. Das Manifest empfiehlt, die Konfigurationsdaten für die Anwendung in Enviornment-Variablen zu speichern. Bedeutet dies, dass Eigenschaften wie der DB-Benutzername / das Kennwort, die Ressourcen-URL als Teil von Java Env-Variablen und nicht als Eigenschaftendateien gespeichert werden sollten? Ist dies eine sichere Art, die Informationen zu speichern? Das scheint mir eine ziemlich klobige Art zu sein, die Information zu speichern. Gibt es irgendwelche Best Practices / Erfahrungen, die geteilt werden können?
Eine Option, die ich mir vorstellen kann, ist, dass ein separater Konfigurationsdienst in der Landschaft ausgeführt wird und die Env-Eigenschaft verwendet wird, um eine Verbindung mit dem Konfigurationsdienst herzustellen und den Konfigurationsservice abzufragen, um weitere Konfigurationsdaten zu erhalten.
12-Faktor-Apps sind so konzipiert, dass sie auf Plattformen laufen, die isolierte UNIX-Prozesse orchestrieren. UNIX-Prozesse werden über Umgebungsvariablen konfiguriert. Während Eigenschaftendateien eine gut etablierte Java-Konvention sind, sind UNIX-Prozesse eine sprachunabhängige Möglichkeit, Prozesse zu konfigurieren.
Um mehrere Konfigurationsmethoden zu unterstützen, empfehlen wir Folgendes:
System.getenv('CONFIG')
, wenn null properties.getProperty('CONFIG')
, wenn null Weitere Einzelheiten finden Sie in den Anweisungen von Heroku zu zur Definition von config vars für Java-Apps .
Wir können die zentrale Spring-Konfiguration dazu verwenden, indem wir mithilfe einer zentralisierten Konfiguration die Konfiguration all unserer Projekte in einem einzigen Repository festschreiben und später während des Schreibens von Build-Skripten unsere lokale Konfiguration aus diesem Repository überschreiben können, um diese zentralisierte Konfiguration zu verwenden .
Durch Klicken auf den unteren Link finden Sie einen Leitfaden, um dies zu tun