spring-boot
Creación y uso de múltiples archivos de aplicaciones.propiedades
Buscar..
Dev y Prod entorno utilizando diferentes fuentes de datos
Después de configurar con éxito la aplicación Spring-Boot, toda la configuración se maneja en un archivo application.properties. Encontrará el archivo en src/main/resources/
.
Normalmente es necesario tener una base de datos detrás de la aplicación. Para el desarrollo es bueno tener una configuración de dev
y un entorno de prod
. Mediante el uso de varios archivos application.properties
puede indicar a Spring-Boot con qué entorno debe iniciar la aplicación.
Un buen ejemplo es configurar dos bases de datos. Uno para dev
y otro para productive
.
Para el dev
entorno se puede utilizar una base de datos en memoria como H2
. Cree un nuevo archivo en el directorio src/main/resources/
llamado application-dev.properties
. Dentro del archivo está la configuración de la base de datos en memoria:
spring.datasource.url=jdbc:h2:mem:test
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
Para el entorno prod
, nos conectaremos a una base de datos "real", por ejemplo, postgreSQL
. Cree un nuevo archivo en el directorio src/main/resources/
llamado application-prod.properties
. Dentro del archivo está la configuración de la base de datos postgreSQL
:
spring.datasource.url= jdbc:postgresql://localhost:5432/yourDB
spring.datasource.username=postgres
spring.datasource.password=secret
En su archivo application.properties
predeterminado application.properties
ahora puede establecer qué perfil es activado y usado por Spring-Boot. Solo establece un atributo dentro:
spring.profiles.active=dev
o
spring.profiles.active=prod
Es importante que la parte posterior -
en application-dev.properties
sea el identificador del archivo.
Ahora puede iniciar la aplicación Spring-Boot en modo de desarrollo o producción simplemente cambiando el identificador. Se iniciará una base de datos en memoria o la conexión a una base de datos "real". Claro que también hay muchos más casos de uso para tener múltiples archivos de propiedades.
Establezca el perfil de resorte correcto construyendo la aplicación automáticamente (maven)
Al crear múltiples archivos de propiedades para los diferentes entornos o casos de uso, a veces es difícil cambiar manualmente el valor de active.profile
al correcto. Pero hay una manera de configurar el active.profile
en el archivo application.properties
mientras se construye la aplicación utilizando maven-profiles
.
Digamos que hay tres entornos de archivos de propiedades en nuestra aplicación:
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
Esos tres archivos solo difieren en puerto y nombre de perfil activo.
En el archivo principal application.properties
configuramos nuestro perfil de primavera usando una variable maven :
application.properties
.
spring.profiles.active=@profileActive@
Después de eso solo tenemos que agregar los perfiles de Maven en nuestro pom.xml
. Estableceremos los perfiles para los tres entornos:
<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>
Ahora puedes construir la aplicación con maven. Si no configura ningún perfil de Maven, está creando el predeterminado (en este ejemplo es dev). Para especificar uno tienes que usar una palabra clave maven. La palabra clave para establecer un perfil en maven es -P
seguida directamente por el nombre del perfil: mvn clean install -Ptest
.
Ahora, también puede crear compilaciones personalizadas y guardarlas en su IDE
para compilaciones más rápidas.
Ejemplos:
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