Java SpringBoot启动指定profile的8种方式详解
作者:Apple_Web 发布时间:2023-07-31 21:48:03
配置文件中设置
通常在公司级别的项目中,我们可能会写多个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下面!!!
来源:https://blog.csdn.net/belongtocode/article/details/120240527


猜你喜欢
- 本文实例讲述了Java Socket实现单线程通信的方法。分享给大家供大家参考,具体如下:现在做Java直接使用Socket的情况是越来越少
- 在WPF中,TreeView默认情况是不支持右键选定的,也就是说,当右键点击某节点时,是无法选中该节点的。当我们想在TreeViewItem
- 代理模式:为其他对象提供一种代理以控制某个对象的访问。用在:在某些情况下,一个客户不想或者不能直接访问另一个对象,而代理对象可以在客户端和目
- 参考: https://gist.github.com/laispace/666dd7b27e9116faece6前提是你本地有 socks
- 一,功能效果二,实现过程1,先写xml文件:dialog_keyboard.xml 注意事项(1),密码
- 本文实例讲述了C#基于NPOI生成具有精确列宽行高的Excel文件的方法,是非常具有实用价值的技巧分享给大家供大家参考。具体方法如下:。一、
- 一.背景项目中有个需求大体意思是,上传一个word模板,根据word模板合成word文件,再将word文件转为pdf。二.方案选择1.Spi
- 如下所示://view重绘时回调view.getViewTreeObserver().addOnDrawListener(new OnDra
- java操作json对象出现StackOverflow错误今天在做项目的时候,遇到一个非常怪异的问题。一个java实体类中存在多个属性,每一
- 之前的两篇文章:Java实现两人五子棋游戏(二) 画出棋盘;Java实现两人五子棋游戏(三) 画出棋子;Java实现两人五子棋游戏(四) 落
- 本文讲述了Android使用国内镜像在线更新SDK的方法。分享给大家供大家参考,具体如下:什么是Android SDK:SDK:(softw
- 前言近期有个业务需求,涉及用户付费相关的计算,需要一个日历组件,组件功能如下:仅支持从明天开始选择预定日期仅支持可选范围内的日期日期的选择是
- 前言在日常的测试工作过程中,app可能会出现闪退崩溃的情况,这个时候就需要测试同学快速抓取到崩溃日志,来有效的辅助开发定位问题,快速的去解决
- 记录下一个很实用的小控件EditTextWithDel,就是在Android系统的输入框右边加入一个小图标,点击小图标可以清除输入框里面的内
- 今天学习到了SpringBoot 的属性赋值@Value用法先总结@Value(" 张三 "):直接附在属性名上,在Be
- /// <summary> /// 计算本周起始日期(礼拜一的日期) /// </summary&
- Jackson,我感觉是在Java与Json之间相互转换的最快速的框架,当然Google的Gson也很不错,但是参照网上有人的性能测试,看起
- 前言尺子在客户端开发中有一定的应用场景,比如厘米尺、白板的画线尺、视频剪辑的时间尺。一般可以采用用户控件通过自绘的方式实现,但今天我要讲一个
- 枚举是 C# 中最有意思的一部分,大部分开发人员只了解其中的一小部分,甚至网上绝大多数的教程也只讲解了枚举的一部分。那么,我将通过这篇文章向
- 为什么要使用Lambda?可以对一个接口进行非常简洁的实现。Lambda对接口的要求?接口中定义的抽象方法有且只有一个才可以。传统实现一个接