spring-boot
Skapa och använda flera applikationsfiler
Sök…
Dev- och Prod-miljö med olika datakällor
Efter att Spring-Boot-applikationen har installerats, hanteras all konfiguration i en application.properties-fil. Du hittar filen på src/main/resources/
.
Normalt finns det ett behov av en databas bakom applikationen. För utveckling är det bra att ha en installation av dev
och prod
miljöer. Med hjälp av flera application.properties
filer kan du berätta för Spring-Boot med vilken miljö applikationen ska starta.
Ett bra exempel är att konfigurera två databaser. En för dev
och en för productive
.
För dev
miljön kan du använda en databas i minnet som H2
. Skapa en ny fil i src/main/resources/
katalog med namnet application-dev.properties
. Inuti filen finns konfigurationen av databasen i minnet:
spring.datasource.url=jdbc:h2:mem:test
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
För prod
miljön kommer vi att ansluta till en "riktig" databas, till exempel postgreSQL
. Skapa en ny fil i src/main/resources/
katalog med namnet application-prod.properties
. Inuti filen finns konfigurationen av postgreSQL
databasen:
spring.datasource.url= jdbc:postgresql://localhost:5432/yourDB
spring.datasource.username=postgres
spring.datasource.password=secret
I standard application.properties
filen är du nu kunna ställa vilken profil är aktiverad och används av Spring-Boot. Ställ bara ett attribut inuti:
spring.profiles.active=dev
eller
spring.profiles.active=prod
Viktigt är att delen efter -
i application-dev.properties
är filens identifierare.
Nu kan du starta Spring-Boot-applikationen i utvecklings- eller produktionsläge genom att bara ändra identifieraren. En databas i minnet startas eller anslutningen till en "riktig" databas. Visst finns det mycket mer användningsfall för att ha flera egendomsfiler.
Ställ in rätt vårprofil genom att bygga applikationen automatiskt (maven)
Genom att skapa flera fastighetsfiler för olika miljöer eller använda fall är det ibland svårt att manuellt ändra värdet active.profile
till rätt. Men det finns ett sätt att ställa in active.profile
i filen application.properties
medan du bygger applikationen med hjälp av maven-profiles
.
Låt oss säga att det finns tre miljöegenskaper i vår applikation:
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
Dessa tre filer skiljer sig bara i port och aktivt profilnamn.
I huvud application.properties
filen vi satt vår våren profil med en maven variabel :
application.properties
.
spring.profiles.active=@profileActive@
Efter det måste vi bara lägga till maven-profilerna i vår pom.xml
Vi kommer att ställa in profiler för alla tre miljöer:
<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>
Du kan nu bygga applikationen med maven. Om du inte anger någon mavenprofil bygger den standardprofilen (i det här exemplet är det dev). För att ange ett måste du använda ett maven nyckelord. Nyckelordet för att ställa in en profil i maven är -P
direkt följt av profilens namn: mvn clean install -Ptest
.
Nu kan du också skapa anpassade builds och spara dem i din IDE
för snabbare builds.
Exempel:
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