Heim > Datenbank > MySQL-Tutorial > Wie kann ich Datenbankanmeldeinformationen in Spring Boot über mehrere Umgebungen hinweg dynamisch verwalten?

Wie kann ich Datenbankanmeldeinformationen in Spring Boot über mehrere Umgebungen hinweg dynamisch verwalten?

Patricia Arquette
Freigeben: 2024-12-10 10:42:11
Original
283 Leute haben es durchsucht

How Can I Manage Database Credentials Dynamically in Spring Boot Across Multiple Environments?

Verwenden von Umgebungsvariablen in den application.properties von Spring Boot

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:

  1. Systemumgebungsvariablen erstellen:
    Erstellen Sie die folgenden Systemumgebungsvariablen für MySQL Konfigurationen:

    • OPENSHIFT_MYSQL_DB_HOST
    • OPENSHIFT_MYSQL_DB_PORT
    • OPENSHIFT_MYSQL_DB_USERNAME
    • OPENSHIFT_MYSQL_DB_PASSWORD
  2. Zugriff Umgebungsvariablen:
    Um auf Umgebungsvariablen innerhalb von Java-Code zuzugreifen, verwenden Sie die Methode System.getenv().
  3. 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}
    Nach dem Login kopieren

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:

  • application-local.properties für die lokale Entwicklung
  • application-ci.properties für die CI/CD-Umgebung
  • application-produktion.properties für die Produktion

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage