Recherche…


Environnement Dev et Prod utilisant différentes sources de données

Après avoir configuré avec succès l'application Spring-Boot, toute la configuration est gérée dans un fichier application.properties. Vous trouverez le fichier sur src/main/resources/ .

Normalement, il est nécessaire d'avoir une base de données derrière l'application. Pour le développement de son bon d'avoir une configuration de dev et un prod environnement. En utilisant plusieurs fichiers application.properties , vous pouvez indiquer à Spring-Boot quel environnement l'application doit démarrer.

Un bon exemple consiste à configurer deux bases de données. Un pour dev et un pour productive .

Pour le dev environnement , vous pouvez utiliser une base de données en mémoire comme H2 . Créez un nouveau fichier dans le répertoire src/main/resources/ nommé application-dev.properties . Dans le fichier se trouve la configuration de la base de données en mémoire:

spring.datasource.url=jdbc:h2:mem:test
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=

Pour l'environnement de prod , nous nous connecterons à une "vraie" base de données, par exemple postgreSQL . Créez un nouveau fichier dans le répertoire src/main/resources/ nommé application-prod.properties . Dans le fichier se trouve la configuration de la base de données postgreSQL :

spring.datasource.url= jdbc:postgresql://localhost:5432/yourDB
spring.datasource.username=postgres
spring.datasource.password=secret

Dans votre fichier application.properties par défaut application.properties vous pouvez maintenant définir quel profil est activé et utilisé par Spring-Boot. Il suffit de définir un attribut à l'intérieur:

spring.profiles.active=dev

ou

spring.profiles.active=prod

Important est que la partie after - in application-dev.properties est l'identifiant du fichier.

Vous pouvez maintenant lancer l'application Spring-Boot en mode de développement ou de production en modifiant simplement l'identifiant. Une base de données en mémoire démarrera ou la connexion à une "vraie" base de données. Bien sûr, il y a beaucoup plus de cas d'utilisation pour avoir plusieurs fichiers de propriétés.

Définissez le bon profil de ressort en créant automatiquement l'application (maven)

En créant plusieurs fichiers de propriétés pour les différents environnements ou cas d'utilisation, il est parfois difficile de modifier manuellement la valeur active.profile pour la valeur correcte. Mais il existe un moyen de définir le active.profile dans le fichier application.properties lors de la création de l'application à l'aide de maven-profiles .

Disons qu'il y a trois fichiers de propriétés d'environnement dans notre application:

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

Ces trois fichiers diffèrent simplement par le nom du port et du profil actif.

Dans le fichier principal application.properties , nous définissons notre profil Spring en utilisant une variable maven :

application.properties .

spring.profiles.active=@profileActive@

Après cela, il suffit d'ajouter les profils pom.xml dans notre pom.xml Nous allons définir des profils pour les trois environnements:

 <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>

Vous êtes maintenant capable de construire l'application avec maven. Si vous ne définissez pas de profil Maven, sa construction par défaut (dans cet exemple, c'est dev). Pour spécifier un, vous devez utiliser un mot-clé maven. Le mot-clé pour définir un profil dans maven est -P directement suivi du nom du profil: mvn clean install -Ptest .

Maintenant, vous pouvez également créer des versions personnalisées et les enregistrer dans votre IDE pour des constructions plus rapides.

Exemples:

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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow