After succesfully setup Spring-Boot application all the configuration is handled in an application.properties file. You will find the file at src/main/resources/
.
Normally there is a need to have a database behind the application. For development its good to have a setup of dev
and a prod
environments. Using multiple application.properties
files you can tell Spring-Boot with which environment the application should start.
A good example is to configure two databases. One for dev
and one for productive
.
For the dev
environment you can use an in-memory database like H2
.
Create a new file in src/main/resources/
directory named application-dev.properties
. Inside the file there is the configuration of the in-memory database:
spring.datasource.url=jdbc:h2:mem:test
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
For the prod
environment we will connect to a "real" database for example postgreSQL
.
Create a new file in src/main/resources/
directory named application-prod.properties
. Inside the file there is the configuration of the postgreSQL
database:
spring.datasource.url= jdbc:postgresql://localhost:5432/yourDB
spring.datasource.username=postgres
spring.datasource.password=secret
In your default application.properties
file you are now able to set which profile is activated and used by Spring-Boot. Just set one attribute inside:
spring.profiles.active=dev
or
spring.profiles.active=prod
Important is that the part after -
in application-dev.properties
is the identifier of the file.
Now you are able to start Spring-Boot application in develop or production mode by just changing the identifier. An in-Memory database will startup or the connection to a "real" database. Sure there are also much more use cases to have multiple property files.