Bei der Entwicklung einer Spring Boot-Anwendung, die MySQL in mehreren Umgebungen (lokal, CI/CD, Produktion) verwendet, ist dies der Fall unerlässlich, um Datenbankanmeldeinformationen dynamisch zu verarbeiten.
Die Problem:
In application.properties besteht der typische Ansatz darin, MySQL-Informationen fest zu codieren. Dies bringt jedoch Herausforderungen mit sich, wenn das Projekt in verschiedenen Umgebungen ausgeführt wird, da jede Umgebung über eigene Datenbankkonfigurationen verfügen kann.
Vorgeschlagene Lösung:
Um das Problem zu beheben, wird die Der Vorschlag besteht darin, Systemumgebungsvariablen mit geeigneten Werten für jede Umgebung zu erstellen. Diese Umgebungsvariablen können dann in application.properties verwendet werden, um das Datenquellenfeld dynamisch zu gestalten.
Schritte zur Verwendung von Umgebungsvariablen:
Systemumgebungsvariablen erstellen:
Erstellen Sie die folgenden Systemumgebungsvariablen für MySQL Konfigurationen:
Einbinden von Umgebungsvariablen in application.properties:
Ersetzen Sie in application.properties die hartcodierten Werte durch die Umgebung Variablen:
spring.datasource.url = ${OPENSHIFT_MYSQL_DB_HOST}:${OPENSHIFT_MYSQL_DB_PORT}/"nameofDB" spring.datasource.username = ${OPENSHIFT_MYSQL_DB_USERNAME} spring.datasource.password = ${OPENSHIFT_MYSQL_DB_PASSWORD}
Alternativer Ansatz:
Ein weiterer empfohlener Ansatz ist die Verwendung der profilspezifischen Eigenschaften von Spring. Durch die Deklaration der Umgebungsvariablen spring.profiles.active kann Spring die entsprechende Eigenschaftendatei basierend auf dem aktiven Profil automatisch lesen. Zum Beispiel:
Bei diesem Ansatz bleibt die Datei application.properties unverändert, während umgebungsspezifische Konfigurationen in der Datei definiert werden profilspezifische Eigenschaftsdateien.
Das obige ist der detaillierte Inhalt vonWie kann ich Datenbankanmeldeinformationen in Spring Boot über mehrere Umgebungen hinweg dynamisch verwalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!