Profile 是什么?
我们在主配置文件编写的时候,文件名可以是 application-{profile}.properties/yml
但 默认使用application.properties/yml 的配置;
所以我们可以配置很多配置文件以 "application-XXX.properties/yml" 命名,例如:【下面以properties为例 yml也是可以的】
其中 ABC三个就是我自己创建的,你可以往里面写配置,但是不会生效,如果你想生效就得 激活:
激活配置文件
激活配置文件有很多种方法,其中分 properties 和 yml 的:
1.1 properties文件激活指定 profile:
激活方法1 【 在主配置类 application.properties 上写语句】
现在三个文件 A、B、C 分别设置了 端口 8097、8098、8099
首先我们知道,不管你配多少个 他都是冲 application.properties 入口的,我们在里面直接写语句激活某个文件即可:
激活语句貌似只能写一个 我写多了直接报错了。
然后运行可以看到端口改到了 8097
这就是第一种激活方法。
激活方法2 【随启动命令行激活指定 profile】
然后:
可以看到 设置这个profile,我们这里是激活B,运行:
端口号成功改为了 8098 就是B的配置。
激活方法3 【打包后 启动的时候 添加命令行 激活指定profile】
java -jar spring-boot-02-config-0.0.1-SNAPSHOT.jar --spring.profiles.active=C 可以直接在测试的时候,配置传入命令行参数
例: 这里激活的是 C propertoes文件
运行可以看到:
其实就是允许这个jar 然后最后后面加个
--spring.profiles.active=XXX
所以你看配置文件C 那个 properties 文件生效了 ,,,, 端口变8099了。
激活方法4 【虚拟机参数中写语句 ; 这里示例激活 B文件】
运行:
端口变8098 即B文件那个。
1.2 yml文件激活指定 profile:
如果你写的配置文件是 yml,那么我推荐你别写多个yml,因为yml支持多文档块方式激活指定profile:
---
三个减号代表 分块,即配置分块,所以你直接在总那个yml写即可、
可以清楚看到 分快了。这些快代表可以写不同配置 ,独立的。
如果这样写:
完全可以看到 其实那个也一样是那条语句 spring.profiles.active=XXX
我们运行:
果然变成了 8099 端口,这就是 yml 激活 profile 的方法。
总结:
这里说了很多 properties激活指定profile方法 和 yml的莹说了,但是 推荐你自己用一总即可,其次呢 这些一般都是测试开发的时候些的,
其实这里面存在优先级,所以叫你选一中即可。