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五个配置文件
(2)加载配置文件时会先加载application.properties配置文件(这里一般存放一些公共配置),在该文件中配置要加载的环境的配置文件,这里有两种配置方法。
例如要加载dev环境,可以在application.properties中这样配置
spring.profiles.active=dev
或者使用@spring.profiles.active@,如下所示
spring.profiles.active=@spring.profiles.active@
如果使用这种方式则需要在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>
当执行mvn clean package -P dev 命令对项目进行打包发布时,打出来的jar/war包中的配置文件中@spring.profiles.active@ 会被替换成 dev。
注意
@spring.profiles.active@
要与pom中的标签<spring.profiles.active></spring.profiles.active>
> 保持一致,否则会报错。
配置文件的优先级排序(以哪个配置文件为准):
1、项目根目录下的config目录。【优先级最高】
2、项目根目录。
3、classpath下的config目录。
4、classpath目录(新建项目时application.properties默认所在位置)。【优先级最低】
配置文件加载顺序和优先级顺序相反,优先级低的先加载,因为如果有重复的配置,先加载的配置文件会被覆盖。
同一级目录下,如果是application.yml
,application.properties
(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 baliseactiveByDefault
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🎜🎜🎜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]@spring.profiles.active@
doit être cohérent avec la balise<spring.profiles.active></spring.profiles.active>
> l'erreur sera signalée. 🎜
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!