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


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow