Zoeken…


Dev en Prod-omgeving met verschillende gegevensbronnen

Na het succesvol instellen van de Spring-Boot-applicatie wordt alle configuratie afgehandeld in een application.properties-bestand. U vindt het bestand op src/main/resources/ .

Normaal is er behoefte aan een database achter de applicatie. Voor de ontwikkeling zijn goed om een setup van hebben dev en een prod omgevingen. Met behulp van meerdere application.properties bestanden kunt u Spring-Boot vertellen met welke omgeving de applicatie moet starten.

Een goed voorbeeld is om twee databases te configureren. Een voor dev en één voor productive .

Voor de dev omgeving kunt u een in-memory database zoals gebruiken H2 . Maak een nieuw bestand in src/main/resources/ map met de naam application-dev.properties . In het bestand bevindt zich de configuratie van de in-memory database:

spring.datasource.url=jdbc:h2:mem:test
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=

Voor de prod omgeving zullen we verbinding maken met een "echte" database, bijvoorbeeld postgreSQL . Maak een nieuw bestand in src/main/resources/ map met de naam application-prod.properties . In het bestand bevindt zich de configuratie van de postgreSQL database:

spring.datasource.url= jdbc:postgresql://localhost:5432/yourDB
spring.datasource.username=postgres
spring.datasource.password=secret

In uw standaardbestand application.properties kunt u nu instellen welk profiel wordt geactiveerd en gebruikt door Spring-Boot. Stel gewoon één kenmerk in:

spring.profiles.active=dev

of

spring.profiles.active=prod

Belangrijk is dat het gedeelte na - in application-dev.properties de identificatie van het bestand is.

Nu kunt u de Spring-Boot-toepassing starten in de ontwikkel- of productiemodus door eenvoudig de ID te wijzigen. Een in-Memory database zal opstarten of de verbinding met een "echte" database. Natuurlijk zijn er ook veel meer use cases om meerdere eigenschappenbestanden te hebben.

Stel het juiste veerprofiel in door de applicatie automatisch te bouwen (maven)

Door meerdere eigenschappenbestanden voor de verschillende omgevingen of gebruiksscenario's te maken, is het soms moeilijk om de waarde active.profile handmatig in de juiste te wijzigen. Maar er is een manier om het active.profile in het bestand application.properties te stellen tijdens het bouwen van de applicatie met behulp van maven-profiles .

Laten we zeggen dat er drie eigenschappenbestanden voor omgevingen in onze toepassing zijn:

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

Die drie bestanden verschillen alleen in poort en actieve profielnaam.

In het hoofdbestand application.properties we ons veerprofiel in met een maven-variabele :

application.properties .

spring.profiles.active=@profileActive@

Daarna hoeven we alleen de maven-profielen in onze pom.xml toe te voegen. We zullen profielen instellen voor alle drie omgevingen:

 <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>

U kunt nu de applicatie bouwen met maven. Als u geen maven-profiel instelt, wordt het standaardprofiel gebouwd (in dit voorbeeld is dit dev). Om er een te specificeren moet je een maven trefwoord gebruiken. Het sleutelwoord om een profiel in maven in te stellen is -P direct gevolgd door de naam van het profiel: mvn clean install -Ptest .

Nu kunt u ook aangepaste builds maken en die in uw IDE opslaan voor snellere builds.

Voorbeelden:

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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow