spring-boot
Creare e utilizzare più file application.properties
Ricerca…
Ambiente di sviluppo e produzione utilizzando origini dati diverse
Dopo aver installato correttamente l'applicazione Spring-Boot, tutta la configurazione viene gestita in un file application.properties. Troverete il file su src/main/resources/
.
Di norma è necessario avere un database dietro l'applicazione. Per lo sviluppo la sua buona per avere una configurazione di dev
e un prod
ambienti. Usando più file application.properties
puoi dire a Spring-Boot con quale ambiente l'applicazione dovrebbe iniziare.
Un buon esempio è configurare due database. Uno per dev
e uno per productive
.
Per il dev
ambiente è possibile utilizzare un database in memoria come H2
. Crea un nuovo file nella directory src/main/resources/
denominata application-dev.properties
. All'interno del file c'è la configurazione del database in memoria:
spring.datasource.url=jdbc:h2:mem:test
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
Per l'ambiente prod
si collegherà ad un database "reale" ad esempio postgreSQL
. Creare un nuovo file nella directory src/main/resources/
denominata application-prod.properties
. All'interno del file c'è la configurazione del database postgreSQL
:
spring.datasource.url= jdbc:postgresql://localhost:5432/yourDB
spring.datasource.username=postgres
spring.datasource.password=secret
Nel tuo file application.properties
predefinito ora puoi impostare quale profilo è attivato e utilizzato da Spring-Boot. Basta impostare un attributo all'interno:
spring.profiles.active=dev
o
spring.profiles.active=prod
Importante è che la parte dopo -
in application-dev.properties
è l'identificativo del file.
Ora puoi avviare l'applicazione Spring-Boot in modalità sviluppo o produzione semplicemente cambiando l'identificatore. Un database in memoria verrà avviato o la connessione a un database "reale". Certo ci sono anche molti più casi d'uso per avere più file di proprietà.
Imposta il profilo della molla giusta creando l'applicazione automaticamente (esperto)
Creando più file di proprietà per i diversi ambienti o casi d'uso, è talvolta difficile cambiare manualmente il valore active.profile
a quello giusto. Ma c'è un modo per impostare active.profile
nel file application.properties
mentre si costruisce l'applicazione usando maven-profiles
.
Supponiamo che nella nostra applicazione ci siano tre file di proprietà degli ambienti:
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
Questi tre file differiscono solo per la porta e il nome del profilo attivo.
Nel file application.properties
principale impostiamo il nostro profilo molla usando una variabile maven :
application.properties
.
spring.profiles.active=@profileActive@
Dopodiché, dobbiamo solo aggiungere i profili pom.xml
nel nostro pom.xml
. pom.xml
profili per tutti e tre gli ambienti:
<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>
Ora puoi creare l'applicazione con Maven. Se non si imposta alcun profilo Maven, ne viene creato uno predefinito (in questo esempio è dev). Per specificare uno devi usare una parola chiave Maven. La parola chiave per impostare un profilo in Maven è -P
direttamente seguito dal nome del profilo: mvn clean install -Ptest
.
Ora puoi anche creare build personalizzate e salvare quelle nel tuo IDE
per build più veloci.
Esempi:
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