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


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow