SpringBoot启动指定profile的多种方式
配置文件中设置
通常在公司级别的项目中,我们可能会写多个application- dev/prod.yml ,然后我们通常会在application.yml配置文件中写入
spring:profiles:active: dev
这里会指定激活的profile是application- dev.yml
注意:application.yml中类似Java中的父类,其他application- dev/prod.yml会继承这个文件,可以进行重写,没有进行重写的属性我们也是能直接读取的,比如application.yml定义了一个my.name属性,然后我们激活的是application- dev.yml,但是我们并没有在文件中定义这个属性,我们在程序中还是能够读取的,这里可以和Java的父子类继承重写对比
my:name: apple
注意这里可能会涉及到springboot读取配置文件的优先级问题,可参考文章:SpringBoot - 配置文件加载位置与优先级
命令行设置 1、Maven启动指定Profile通过-P,如
mvn spring-boot:run -Ptest
,但这是Maven的Profile。2、如果要指定spring-boot的
spring.profiles.active
,则必须使用mvn spring-boot:run -Drun.profiles=test
3、如果使用命令行直接运行jar文件,则使用
java -jar -Dspring.profiles.active=test demo-0.0.1-SNAPSHOT.jar
4、如果使用开发工具,运行Application.java文件启动,则增加参数
--spring.profiles.active=test
IDEA中设置 1、program arguments程序参数
在Run/Debug Configurations中配置
-Dspring.profiles.active=dev
优先级比配置文件高文章图片
2、VM options虚拟机参数
在Run/Debug Configurations中配置
-Dspring.profiles.active=dev
优先级比配置文件高文章图片
3、Active profiles 参数
指定dev即可
文章图片
遇到的问题 在公司项目中,我下载了一个其他环境的application-ft3.yml,但是没有放入resources文件夹下面,是通过IDEA中Run/Debug Configurations中配置读取我自己在外部的路径,但是由于我这个配置文件中有配置另外一个resources下面的i18n配置文件,程序中也要读取这个i18n下面的文件,我这个application-ft3.yml的文件路径和i18n下面的文件的相对路径就对不上了,导致读取为空!!!
?
文章图片
文章图片
解决办法: 将这个application-ft3.yml放入resources目录下即可解决!所以为了避免出现类似问题,我还是推荐把配置文件放入resource下面!!!
参考文章:【SpringBoot启动指定profile的多种方式】到此这篇关于SpringBoot启动指定profile的多种方式的文章就介绍到这了,更多相关SpringBoot启动指定profile内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
https://blog.csdn.net/weixin_40317062/article/details/82194191
https://www.huaweicloud.com/articles/81095cfdb86cd1a3a46241bc69ae1d55.html
Java启动参数的相关问题可以参考:
https://www.cnblogs.com/haycheng/p/12781261.html
推荐阅读
- Activiti(一)SpringBoot2集成Activiti6
- 参保人员因患病来不及到指定的医疗机构就医,能否报销医疗费用()
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- Hive常见问题汇总
- 注册分销商的骄傲
- Android|Android install 多个设备时指定设备
- 分享!如何分分钟实现微信扫二维码调用外部浏览器打开指定页面的功能
- 如何启动改变
- spring|spring boot项目启动websocket