spring-boot
Maken en gebruiken van meerdere application.properties-bestanden
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