Vorwort
Frage: Springboot-Projekt, wie trennt man die Konfigurationsdateien für Entwicklungsumgebung, Testumgebung und Produktionsumgebung?
Antwort: Methode mit mehreren Profildateien
1. Konfiguration mehrerer Umgebungen (Profil)
1.1, Eigenschaftendateikonfiguration
application.properties: Hauptkonfigurationsdatei
Die Konfiguration der Hauptkonfigurationsdatei bestimmt, welche Umgebung zum Laden der Konfigurationsdatei
spring.profiles.active=dev
Nach dem Login kopieren
wählt das Laden verschiedener Umgebungskonfigurationen
application-{profile}.properties
Nach dem Login kopieren
entsprechend dem spring.profiles.active-Wert
spring:
profiles:
active:dev
Nach dem Login kopieren
Entwicklungs-, Test- und Produktionsumgebungskonfigurationsdateien:- application-dev .properties: Konfigurationsdatei für die Entwicklungsumgebung
- application-test.properties: Konfigurationsdatei für die Testumgebung
application-prod.properties: Konfigurationsdatei für die Produktionsumgebung
1.2, YML-Dateikonfiguration
application.yml : Hauptkonfigurationsdatei
Hauptkonfigurationsdateikonfiguration Bestimmen Sie, welche Umgebungskonfigurationsdatei geladen werden soll
application-{profile}.yml
Nach dem Login kopieren
Entsprechend dem spring.profiles.active-Wert wählen Sie, ob verschiedene Umgebungskonfigurationen geladen werden sollen#默认配置
server:
port: 8080
#切换配置
spring:
profiles:
active: prod
Nach dem Login kopieren
Konfigurationsdateien für Entwicklungs-, Test- und Produktionsumgebungen: - application-dev.yml: Konfigurationsdatei für die Entwicklungsumgebung
- application-test.yml: Konfigurationsdatei für die Testumgebung
application-prod.yml: Konfigurationsdatei für die Produktionsumgebung
1.3 die Hauptkonfigurationsdatei-Switching-Konfiguration
1.3.1. Switch-Produktionskonfiguration
#开发环境配置
server:
port: 8080
#切换配置
spring:
profiles:
active: dev
Nach dem Login kopieren
1.3.2, Switch-Entwicklungskonfiguration
#测试环境配置
server:
port: 8080
#切换配置
spring:
profiles:
active: test
Nach dem Login kopieren
1.3.3, Switch-Testkonfiguration
指当前项目根目录;
Nach dem Login kopieren
1.4, Befehlszeilenaktivierungskonfiguration Datei1.4.1, Konfigurationsdatei für die Befehlszeilenaktivierung
java -jar springboot-0.0.1-SNAPSHOT.jar--spring.profiles.active=dev
1.4.2, Aktivierung der Parameter der virtuellen Maschine
java -Dspring.profiles.active=dev -jar springboot- 0.0.1-SNAPSHOT.jar
2. Standardkonfigurationsdatei
- Wenn Spring Boot startet, werden die Dateien application.properties oder apllication.yml im Folgenden gescannt 5 Speicherorte und verwenden Sie sie als Standardkonfigurationsdatei von Spring Boot.
- Datei:./config/"/
- Datei:/config/
- Datei:./
- Klassenpfad:/config/
Klassenpfad:/
2.1 , file
java -jar xxxx.jar --spring.config.location=外部文件
Nach dem Login kopieren
2.2, classpath
bezieht sich auf den Klassenpfad des aktuellen Projekts, also auf das Ressourcenverzeichnis
- Hinweis:
- application.properties am selben Speicherort hat eine höhere Priorität als application.yml
Alle Dateien am Speicherort werden geladen und die Konfiguration mit niedriger Priorität überschreibt die Konfiguration mit niedriger Priorität, um eine komplementäre Konfiguration zu bilden, das heißt: - Wenn derselbe Konfigurationsinhalt vorhanden ist, wird die Inhalte mit hoher Priorität überschreiben Inhalte mit niedriger Priorität.
Bei unterschiedlichen Konfigurationsinhalten werden die Inhalte mit hoher und niedriger Priorität kombiniert. 3. Externe Konfigurationsdatei Geben Sie den Pfad der externen Konfigurationsdatei an (die Standardkonfigurationsdatei ist ungültig). Die Priorität ist die höchste.
java -jar xxxx.jar --spring.config.additional-location=外部文件
案例
Nach dem Login kopieren
4. Die folgenden Konfigurationsdateien werden häufig verwendet (von hoher zu niedriger Priorität):
Konfigurationsdateien (YAML-Dateien, Eigenschaftendateien)
@Configuration @PropertySource angegeben in der Annotationsklasse Konfigurationsdatei
Standardeigenschaften, angegeben durch SpringApplication.setDefaultProperties
Das obige ist der detaillierte Inhalt vonWas sind die Prioritäten und Methoden von Konfigurationsdateien für mehrere Umgebungen in Java Spring Boot?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!