Java >> Tutoriel Java >  >> Tag >> Spring

Configurer le profil actif dans SpringBoot via Maven

Le profil Maven et le profil Spring sont deux choses complètement différentes. Votre pom.xml définit spring.profiles.active variable qui est disponible dans le processus de construction, mais pas au moment de l'exécution. C'est pourquoi seul le profil par défaut est activé.

Comment lier le profil Maven à Spring ?

Vous devez transmettre la variable de construction à votre application afin qu'elle soit disponible au démarrage.

  1. Définissez un espace réservé dans votre application.properties :

    [email protected]@
    

    Le @[email protected] la variable doit correspondre à la propriété déclarée du profil Maven.

  2. Activez le filtrage des ressources dans votre pom.xml :

    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        …
    </build>
    

    Lorsque le build est exécuté, tous les fichiers du src/main/resources sera traité par Maven et l'espace réservé dans votre application.properties sera remplacé par la variable que vous avez définie dans votre profil Maven.

Pour plus de détails, vous pouvez aller à mon article où j'ai décrit ce cas d'utilisation.


Ou plutôt facilement :

mvn spring-boot:run -Dspring-boot.run.profiles={profile_name}

Il existe plusieurs façons de définir des profils pour votre application springboot.

  1. Vous pouvez ajouter ceci dans votre fiche propriété :

    spring.profiles.active=dev
    
  2. Manière programmatique :

    SpringApplication.setAdditionalProfiles("dev");
    
  3. Les tests permettent de spécifier très facilement quels profils sont actifs

    @ActiveProfiles("dev")
    
  4. Dans un environnement Unix

    export spring_profiles_active=dev
    
  5. Paramètre système JVM

    -Dspring.profiles.active=dev
    

Exemple :Exécution d'un fichier jar springboot avec profil.

java -jar -Dspring.profiles.active=dev application.jar

Balise Java