spring-boot
Erstellen und Verwenden mehrerer application.properties-Dateien
Suche…
Dev- und Prod-Umgebung mit unterschiedlichen Datenquellen
Nach dem erfolgreichen Setup der Spring-Boot-Anwendung wird die gesamte Konfiguration in einer Datei application.properties behandelt. Sie finden die Datei unter src/main/resources/
.
Normalerweise muss hinter der Anwendung eine Datenbank vorhanden sein. Für die Entwicklung seines guten einen Aufbau haben dev
und einen prod
Umgebungen. Mit mehreren application.properties
Dateien können Sie Spring-Boot mitteilen, in welcher Umgebung die Anwendung gestartet werden soll.
Ein gutes Beispiel ist die Konfiguration von zwei Datenbanken. Eine für dev
und eine für productive
.
Für die dev
können Sie eine In-Memory-Datenbank wie H2
. Erstellen Sie eine neue Datei im Verzeichnis src/main/resources/
Namen application-dev.properties
. In der Datei befindet sich die Konfiguration der In-Memory-Datenbank:
spring.datasource.url=jdbc:h2:mem:test
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
Für die prod
Umgebung stellen wir eine Verbindung zu einer "echten" Datenbank her, zum Beispiel postgreSQL
. Erstellen Sie eine neue Datei im Verzeichnis src/main/resources/
Namen application-prod.properties
. In der Datei befindet sich die Konfiguration der postgreSQL
Datenbank:
spring.datasource.url= jdbc:postgresql://localhost:5432/yourDB
spring.datasource.username=postgres
spring.datasource.password=secret
In Ihrer Standarddatei application.properties
Sie jetzt festlegen, welches Profil von Spring-Boot aktiviert und verwendet wird. Setzen Sie einfach ein Attribut in:
spring.profiles.active=dev
oder
spring.profiles.active=prod
Wichtig ist, dass der Teil nach -
in application-dev.properties
der Bezeichner der Datei ist.
Jetzt können Sie die Spring-Boot-Anwendung im Entwicklungs- oder Produktionsmodus starten, indem Sie einfach die Kennung ändern. Eine In-Memory-Datenbank wird gestartet oder die Verbindung zu einer "echten" Datenbank hergestellt. Natürlich gibt es auch viel mehr Anwendungsfälle, um mehrere Eigenschaftsdateien zu haben.
Stellen Sie das richtige Federprofil ein, indem Sie die Anwendung automatisch erstellen (maven).
Durch das Erstellen mehrerer Eigenschaftendateien für die verschiedenen Umgebungen oder Anwendungsfälle ist es manchmal schwierig, den Wert von active.profile
manuell auf den active.profile
Wert zu ändern. Aber es gibt einen Weg , um das setzen active.profile
in der application.properties
Datei , während die Anwendung des Aufbau unter Verwendung von maven-profiles
.
Nehmen wir an, in unserer Anwendung gibt es drei Umgebungs-Eigenschaftsdateien:
application-dev.properties
:
spring.profiles.active=dev
server.port=8081
application-test.properties
:
spring.profiles.active=test
server.port=8082
application-prod.properties
.
spring.profiles.active=prod
server.port=8083
Diese drei Dateien unterscheiden sich lediglich im Port- und im aktiven Profilnamen.
In der Hauptdatei application.properties
legen wir unser Federprofil mithilfe einer Maven-Variablen fest :
application.properties
.
spring.profiles.active=@profileActive@
Danach müssen wir nur die Maven-Profile in unserer pom.xml
hinzufügen. Wir werden Profile für alle drei Umgebungen festlegen:
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<build.profile.id>dev</build.profile.id>
<profileActive>dev</profileActive>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<build.profile.id>test</build.profile.id>
<profileActive>test</profileActive>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<build.profile.id>prod</build.profile.id>
<profileActive>prod</profileActive>
</properties>
</profile>
</profiles>
Sie können jetzt die Anwendung mit Maven erstellen. Wenn Sie kein Maven-Profil festlegen, wird das Standardprofil erstellt (in diesem Beispiel ist es dev). Für eine Angabe müssen Sie ein Maven-Schlüsselwort verwenden. Das Schlüsselwort zum Einrichten eines Profils in maven lautet -P
direkt gefolgt vom Namen des Profils: mvn clean install -Ptest
.
Jetzt können Sie auch benutzerdefinierte Builds erstellen und diese für schnellere Builds in Ihrer IDE
speichern.
Beispiele:
mvn clean install -Ptest
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.5.3.RELEASE)
2017-06-06 11:24:44.885 INFO 6328 --- [ main] com.demo.SpringBlobApplicationTests : Starting SpringApplicationTests on KB242 with PID 6328 (started by me in C:\DATA\Workspaces\spring-demo)
2017-06-06 11:24:44.886 INFO 6328 --- [ main] com.demo.SpringApplicationTests : The following profiles are active: test
mvn clean install -Pprod
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.5.3.RELEASE)
2017-06-06 14:43:31.067 INFO 6932 --- [ main] com.demo.SpringBlobApplicationTests : Starting SpringApplicationTests on KB242 with PID 6328 (started by me in C:\DATA\Workspaces\spring-demo)
2017-06-06 14:43:31.069 INFO 6932 --- [ main] com.demo.SpringApplicationTests : The following profiles are active: prod