spring.profiles.active配置的作用
特性配置项/文件作用类比定义/声明(在YAML段中)声明这段配置属于哪个Profile电视台的台标和频道(文件名)声明这个文件里的配置属于哪个Profile激活/使用命令Spring去启用哪些已定义的Profile电视遥控器是用来定义当前配置的名称。是用来指定要激活的配置名称。
1. spring.profiles (或文件名中的 ?):定义配置的名称
这是声明一段配置属于哪个 Profile。
-
在同一个
application.yml中:使用spring.profiles键来为一个配置段打上标签。yaml
spring: profiles: dev # 【定义】这个配置段的名称是‘dev’ server: port: 9090
-
在独立的配置文件中:通过文件命名规则
application-{profile}.yml来定义。-
文件
application-prod.yml-> 【定义】这个文件里的所有配置都属于prodProfile。 -
文件
application-database.yml-> 【定义】这个文件里的所有配置都属于databaseProfile。
-
关键: 这只是在“准备”配置,它们此时并不会自动生效。
2. spring.profiles.active:激活指定的配置名称
这是命令Spring去加载并使用那些已被定义的配置。
-
作用:告诉Spring Boot:“请去找到所有名为
[值]的配置(无论是在主文件里的段还是独立文件),并把它们激活,与默认配置合并。” -
示例:
-
spring.profiles.active=dev-> 【激活】所有定义名为dev的配置。 -
spring.profiles.active=prod,database-> 【激活】所有定义名为prod和database的配置(可以同时激活多个,用逗分隔)。
-
工作流程类比
您可以把它想象成一个电视台和电视遥控器:
-
电视台 (
spring.profiles/ 文件名):-
各个电视台(如CCTV-1, CCTV-5)一直在播放不同的节目(不同的配置)。
-
它们定义了自己是谁(
spring.profiles: cctv1)。
-
-
遥控器 (
spring.profiles.active):-
你手里的遥控器决定激活哪个电视台的信号到你的电视机上。
-
你按下“CCTV-5”(
spring.profiles.active=cctv5),你的电视就播放CCTV-5的节目。
-
-
默认频道 (
application.yml):-
即使你不按遥控器,电视也有一个默认频道(默认配置)在播放。
-
总结对比表
| 特性 | 配置项/文件 | 作用 | 类比 |
|---|---|---|---|
| 定义/声明 | spring.profiles (在YAML段中) |
声明这段配置属于哪个Profile | 电视台的台标和频道 |
application-{profile}.yml (文件名) |
声明这个文件里的配置属于哪个Profile | ||
| 激活/使用 | spring.profiles.active |
命令Spring去启用哪些已定义的Profile | 电视遥控器 |
所以,您的两句话完美地概括了整个过程:
-
spring.profiles=?是用来定义当前配置的名称。 -
spring.profiles.active=?是用来指定要激活的配置名称。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)