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