JavaSpringBoot启动指定profile的8种方式详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JavaSpringBoot启动指定profile的8种⽅式详解
⽬录
配置⽂件中设置
命令⾏设置
IDEA中设置
1、program arguments程序参数
2、VM options虚拟机参数
3、Active profiles 参数
遇到的问题
总结
配置⽂件中设置
通常在公司级别的项⽬中,我们可能会写多个application- dev/prod.yml ,然后我们通常会在application.yml配置⽂件中写⼊
spring:
profiles:
active: dev
这⾥会指定激活的profile是application- dev.yml
注意:application.yml中类似Java中的⽗类,其他application- dev/prod.yml会继承这个⽂件,可以进⾏重写,没有进⾏重写的属性我们也是能直接读取的,⽐如application.yml定义了⼀个属性,然后我们激活的是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下⾯总结
本篇⽂章就到这⾥了,希望能够给你带来帮助,也希望您能够多多关注的更多内容!。