Table des matières
1. La commutation multi-environnements est implémentée dans SpringBoot
2.SpringBoot中配置文件加载顺序
Maison Java javaDidacticiel Comment SpringBoot charge-t-il plusieurs fichiers de configuration pour basculer entre les environnements de développement et de produit ?

Comment SpringBoot charge-t-il plusieurs fichiers de configuration pour basculer entre les environnements de développement et de produit ?

May 12, 2023 pm 11:58 PM
dev springboot product

1. La commutation multi-environnements est implémentée dans SpringBoot

Dans SpringBoot, en plus de application.properties, les noms de fichiers des autres fichiers de configuration que nous créons doivent respecter le format application-{profile}.properties code>, où <code>{profile} correspond à votre identifiant d'environnement (pas nécessairement un fichier .properties, il peut également s'agir de .yml) et sa valeur {profile} correspondante est personnalisée par le développeur (comme dev, product), lors du démarrage du projet, il vous suffit d'ajouter les paramètres correspondants, et springboot lira le fichier de configuration. La configuration de profil spécifique est définie dans le fichier application.properties via la propriété spring.profiles.active. Ensuite, nous illustrerons avec un exempleapplication-{profile}.properties的格式,其中{profile}对应你的环境标识(不一定是.properties文件,也可以是.yml)其对应的{profile}值是开发者自定义的(如dev,product),在项目启动的时候,只需要添加对应的参数,springboot就会去读取该配置文件了。具体profile的配置在application.properties文件中通过spring.profiles.active属性来设置。接下来我们以一个例子来说明

(1)首先这里创建了dev、product、qa、stage和默认的application五个配置文件

Comment SpringBoot charge-t-il plusieurs fichiers de configuration pour basculer entre les environnements de développement et de produit ?

(2)加载配置文件时会先加载application.properties配置文件(这里一般存放一些公共配置),在该文件中配置要加载的环境的配置文件,这里有两种配置方法。

例如要加载dev环境,可以在application.properties中这样配置

spring.profiles.active=dev
Copier après la connexion

或者使用@spring.profiles.active@,如下所示

spring.profiles.active=@spring.profiles.active@
Copier après la connexion

如果使用这种方式则需要在pom.xml中添加以下内容,其中activeByDefault标签来指定项目启动时默认加载的配置文件。

<profiles>
  <profile>
    <id>dev</id>
    <activation>
      <activeByDefault>true</activeByDefault>
    </activation>
    <properties>
      <spring.profiles.active>dev</spring.profiles.active>
    </properties>
  </profile>
  <profile>
    <id>qa</id>
    <properties>
      <spring.profiles.active>qa</spring.profiles.active>
    </properties>
  </profile>
  <profile>
    <id>stage</id>
    <properties>
      <spring.profiles.active>stage</spring.profiles.active>
    </properties>
  </profile>
  <profile>
    <id>product</id>
    <properties>
      <spring.profiles.active>product</spring.profiles.active>
    </properties>
  </profile>
</profiles>
Copier après la connexion

当执行mvn clean package -P dev 命令对项目进行打包发布时,打出来的jar/war包中的配置文件中@spring.profiles.active@ 会被替换成 dev。

注意@spring.profiles.active@ 要与pom中的标签 <spring.profiles.active></spring.profiles.active>> 保持一致,否则会报错。

Comment SpringBoot charge-t-il plusieurs fichiers de configuration pour basculer entre les environnements de développement et de produit ?

2.SpringBoot中配置文件加载顺序

配置文件的优先级排序(以哪个配置文件为准):

1、项目根目录下的config目录。【优先级最高】
2、项目根目录。
3、classpath下的config目录。
4、classpath目录(新建项目时application.properties默认所在位置)。【优先级最低】

配置文件加载顺序和优先级顺序相反,优先级低的先加载,因为如果有重复的配置,先加载的配置文件会被覆盖。

同一级目录下,如果是application.yml,application.properties

(1) Tout d'abord, cinq fichiers de configuration de développement, produit, qualité, étape et application par défaut sont créés ici

Comment SpringBoot charge-t-il plusieurs fichiers de configuration pour basculer entre les environnements de développement et de produit ?Comment SpringBoot charge-t-il plusieurs fichiers de configuration pour basculer entre les environnements de développement et de produit

(2) Lors du chargement du fichier de configuration, le fichier de configuration application.properties sera chargé en premier (Certaines configurations publiques sont généralement stockées ici). Configurez le fichier de configuration de l'environnement à charger dans ce fichier. Il existe deux méthodes de configuration.

Par exemple, pour charger l'environnement de développement, vous pouvez le configurer comme ceci dans application.properties

rrreee🎜ou utiliser @spring.profiles.active@, comme indiqué ci-dessous🎜rrreee🎜Si vous utilisez cette méthode, vous devez ajouter le contenu suivant dans pom.xml , où la balise activeByDefault spécifie le fichier de configuration chargé par défaut au démarrage du projet. 🎜rrreee🎜Lorsque la commande mvn clean package -P dev est exécutée pour empaqueter et publier le projet, @spring.profiles.active@ dans le fichier de configuration du package jar/war sera remplacé par dev. 🎜
🎜Notez que @spring.profiles.active@ doit être cohérent avec la balise <spring.profiles.active></spring.profiles.active>> l'erreur sera signalée. 🎜
🎜Comment SpringBoot charge-t-il plusieurs fichiers de configuration pour réaliser plusieurs développements et fonctions du produit ? Changement d'environnement🎜🎜2. Ordre de chargement des fichiers de configuration dans SpringBoot🎜🎜Tri prioritaire des fichiers de configuration (quel fichier de configuration doit prévaloir) : 🎜🎜1. Le répertoire de configuration sous le projet répertoire racine . [Priorité la plus élevée]
2. Répertoire racine du projet.
3. Le répertoire de configuration sous classpath.
4. Répertoire Classpath (l'emplacement par défaut de application.properties lors de la création d'un nouveau projet). [Priorité la plus basse]🎜🎜L'ordre de chargement des fichiers de configuration est opposé à l'ordre de priorité. Celui avec la priorité la plus faible est chargé en premier, car s'il y a des configurations en double, le fichier de configuration chargé en premier sera écrasé. 🎜🎜Sous le même répertoire de niveau, si les fichiers de configuration application.yml et application.properties existent en même temps, le fichier de configuration application.properties prévaudra, ce qui signifie qu'il est chargé en premier. Chargez le fichier .properties après le fichier .yml. 🎜🎜🎜🎜🎜Ordre prioritaire : 1->2->3->4->5. 🎜🎜Ordre de chargement des fichiers : 5->4->3->2->1. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Solution au code d'erreur d'échec de l'installation Win10 SNMP 0x8024402C Solution au code d'erreur d'échec de l'installation Win10 SNMP 0x8024402C Feb 13, 2024 am 08:30 AM

Le protocole SNMP est un protocole de gestion de réseau simple. Ce protocole peut prendre en charge le système de gestion de réseau et est utilisé pour surveiller si les appareils connectés au réseau présentent une situation qui pose problème en matière de gestion. Cependant, de nombreux utilisateurs ont récemment signalé que l'installation de Win10. snmp a échoué avec le code d'erreur 0x8024402C, que faire ? Les utilisateurs peuvent démarrer Powershell en tant qu'administrateur pour le configurer. Laissez ce site présenter soigneusement aux utilisateurs la solution au code d'erreur 0x8024402C lors de l'installation de snmp dans win10. Solution au code d'erreur d'échec de l'installation Win10 SNMP 0x8024402C 1. Démarrez Powershell en tant qu'administrateur 1. La première étape consiste à exécuter le système Win10

Comment Springboot intègre Jasypt pour implémenter le chiffrement des fichiers de configuration Comment Springboot intègre Jasypt pour implémenter le chiffrement des fichiers de configuration Jun 01, 2023 am 08:55 AM

Introduction à Jasypt Jasypt est une bibliothèque Java qui permet à un développeur d'ajouter des fonctionnalités de chiffrement de base à son projet avec un minimum d'effort et ne nécessite pas une compréhension approfondie du fonctionnement du chiffrement. Haute sécurité pour le chiffrement unidirectionnel et bidirectionnel. technologie de cryptage basée sur des normes. Cryptez les mots de passe, le texte, les chiffres, les binaires... Convient pour l'intégration dans des applications basées sur Spring, API ouverte, pour une utilisation avec n'importe quel fournisseur JCE... Ajoutez la dépendance suivante : com.github.ulisesbocchiojasypt-spring-boot-starter2 1.1. Les avantages de Jasypt protègent la sécurité de notre système. Même en cas de fuite du code, la source de données peut être garantie.

Tutoriel détaillé sur l'installation de Carla sur le système Ubuntu 20.04. Tutoriel détaillé sur l'installation de Carla sur le système Ubuntu 20.04. Feb 19, 2024 pm 08:20 PM

Carla est une plateforme open source de simulation de conduite autonome conçue pour développer et tester des algorithmes de conduite autonome. Ce qui suit est un tutoriel détaillé pour installer Carla sur le système Ubuntu20.04 : Installer les dépendances : ouvrez une fenêtre de terminal et exécutez la commande suivante pour installer les dépendances de Carla : sudoaptupdatesudoaptinstall-ybuild-essentialclang-10llvm-10python3-pippython3-devlibpng-devlibjpeg-devlibtiff5- devlibopenexr -devlibhdf5-devlibsquish-de

Comment utiliser Redis pour implémenter des verrous distribués dans SpringBoot Comment utiliser Redis pour implémenter des verrous distribués dans SpringBoot Jun 03, 2023 am 08:16 AM

1. Redis implémente le principe du verrouillage distribué et pourquoi les verrous distribués sont nécessaires. Avant de parler de verrous distribués, il est nécessaire d'expliquer pourquoi les verrous distribués sont nécessaires. Le contraire des verrous distribués est le verrouillage autonome. Lorsque nous écrivons des programmes multithreads, nous évitons les problèmes de données causés par l'utilisation d'une variable partagée en même temps. Nous utilisons généralement un verrou pour exclure mutuellement les variables partagées afin de garantir l'exactitude de celles-ci. les variables partagées. Son champ d’utilisation est dans le même processus. S’il existe plusieurs processus qui doivent exploiter une ressource partagée en même temps, comment peuvent-ils s’exclure mutuellement ? Les applications métier d'aujourd'hui sont généralement une architecture de microservices, ce qui signifie également qu'une application déploiera plusieurs processus si plusieurs processus doivent modifier la même ligne d'enregistrements dans MySQL, afin d'éviter les données sales causées par des opérations dans le désordre, les besoins de distribution. à introduire à ce moment-là. Le style est verrouillé. Vous voulez marquer des points

Comment résoudre le problème selon lequel Springboot ne peut pas accéder au fichier après l'avoir lu dans un package jar Comment résoudre le problème selon lequel Springboot ne peut pas accéder au fichier après l'avoir lu dans un package jar Jun 03, 2023 pm 04:38 PM

Springboot lit le fichier, mais ne peut pas accéder au dernier développement après l'avoir empaqueté dans un package jar. Il existe une situation dans laquelle Springboot ne peut pas lire le fichier après l'avoir empaqueté dans un package jar. La raison en est qu'après l'empaquetage, le chemin virtuel du fichier. n’est pas valide et n’est accessible que via le flux Read. Le fichier se trouve sous les ressources publicvoidtest(){Listnames=newArrayList();InputStreamReaderread=null;try{ClassPathResourceresource=newClassPathResource("name.txt");Input

Comment implémenter Springboot+Mybatis-plus sans utiliser d'instructions SQL pour ajouter plusieurs tables Comment implémenter Springboot+Mybatis-plus sans utiliser d'instructions SQL pour ajouter plusieurs tables Jun 02, 2023 am 11:07 AM

Lorsque Springboot+Mybatis-plus n'utilise pas d'instructions SQL pour effectuer des opérations d'ajout de plusieurs tables, les problèmes que j'ai rencontrés sont décomposés en simulant la réflexion dans l'environnement de test : Créez un objet BrandDTO avec des paramètres pour simuler le passage des paramètres en arrière-plan. qu'il est extrêmement difficile d'effectuer des opérations multi-tables dans Mybatis-plus. Si vous n'utilisez pas d'outils tels que Mybatis-plus-join, vous pouvez uniquement configurer le fichier Mapper.xml correspondant et configurer le ResultMap malodorant et long, puis. écrivez l'instruction SQL correspondante Bien que cette méthode semble lourde, elle est très flexible et nous permet de

Comparaison et analyse des différences entre SpringBoot et SpringMVC Comparaison et analyse des différences entre SpringBoot et SpringMVC Dec 29, 2023 am 11:02 AM

SpringBoot et SpringMVC sont tous deux des frameworks couramment utilisés dans le développement Java, mais il existe des différences évidentes entre eux. Cet article explorera les fonctionnalités et les utilisations de ces deux frameworks et comparera leurs différences. Tout d’abord, découvrons SpringBoot. SpringBoot a été développé par l'équipe Pivotal pour simplifier la création et le déploiement d'applications basées sur le framework Spring. Il fournit un moyen rapide et léger de créer des fichiers exécutables autonomes.

Comment SpringBoot personnalise Redis pour implémenter la sérialisation du cache Comment SpringBoot personnalise Redis pour implémenter la sérialisation du cache Jun 03, 2023 am 11:32 AM

1. Personnalisez RedisTemplate1.1, mécanisme de sérialisation par défaut RedisAPI. L'implémentation du cache Redis basée sur l'API utilise le modèle RedisTemplate pour les opérations de mise en cache des données. Ici, ouvrez la classe RedisTemplate et affichez les informations sur le code source de la classe. Déclarer la clé, diverses méthodes de sérialisation de la valeur, la valeur initiale est vide @NullableprivateRedisSe

See all articles