springBoot 启动指定配置文件环境理论上是有多种方案的,一般都是结合我们的实际业务选择不同的方案,比如,有pom.xml文件指定、maven命令行指定、配置文件指定、启动jar包时指定等方案,今天我们一一分享一下,以供参考:

1、pom文件配置方案

   <profiles><profile><!-- 本地开发环境 --><id>dev</id><properties><profiles.active>dev</profiles.active></properties><!--配置默认的配置文件,idea开发右侧的maven-install中,profiles默认选中dev--><activation><activeByDefault>true</activeByDefault></activation></profile><profile><!-- 测试环境 --><id>test</id><properties><profiles.active>test</profiles.active></properties><!-- <activation><activeByDefault>true</activeByDefault></activation>--></profile><profile><!-- 生产环境 --><id>pro</id><properties><profiles.active>pro</profiles.active></properties><!--  <activation><activeByDefault>true</activeByDefault></activation>--></profile></profiles>

对应的配置文件举例:

application-dev.yml
application-test.yml
application-pro.yml

也可以是目录配置方式

 此处配置三种环境,用哪个环境就把那里设置为true,然后clean、install 打包后设置好了。

另外此时在配置文件添加另外一个配置也行,指定到pom文件:

#环境配置开发时使用
spring.profiles.active=@profiles.active@

2、maven命令行打包指定

mvn clean package -Pdevmvn clean package -Ptestmvn clean package -Ppro

打包指定相应的配置文件。

3、配置文件指定

一般 application.properties 文件中指定环境

spring.profiles.active=test

指定下面的几个文件

4、启动jar包时指定

nohup java -jar demo-server.jar --spring.profiles.active = test > log.file 2>&1 &

直接启动指定test环境

5、虚拟机指定:

 -Dspring.profiles.active=dev

6、使用时注意一下几点,配置文件加载顺序:

1)、同级情况下,application.properties文件优先级大于application.yml,前者会覆盖后者;

2)、springboot的默认加载路径有5个,分别是classpath:/、classpath:/config/、项目根路径、项目根路径/config/*/、项目根路径/config/,会从这5个路径下加载application.properties或application.yml;

3)、5个默认的加载路径的优先级为:项目根路径下的config > 项目根路径下的config/*/ > 项目根路径 > classpath:/config > classpath:/,前者会覆盖后者

7、综上6所述:优先级如下

1):根目录/config/application.properties
2):根目录/config/application.yml
3):根目录/application.properties
4):根目录/application.yml
5):classpath目录/config/application.properties
6):classpath目录/config/application.yml
7):classpath目录/application.properties
8):classpath目录/application.yml

到此,springXXX框架指定配置文件及加载的优先级问题分享完毕,大家详细测试一下,定会惊喜多多。

springBoot 启动指定配置文件环境多种方案相关推荐

  1. SpringBoot单元测试指定运行环境

    1.配置文件直接指定 在配置文件中直接指定运行环境 spring:profiles:active: dev 2.在单元测试的启动项配置 -Dspring.profiles.active=dev 这种方 ...

  2. spring boot指定运行环境

    文章目录 spring boot指定运行环境 1. 命令行指定的方式 springboot根据启动命令不同,执行不同配置文件 2. application.properties中添加spring.pr ...

  3. springboot多模块打包指定子模块环境配置文件

    springboot多模块打包指定子模块环境配置文件 父pom.xml maven 命令:mvn clean package -Dmaven.test.skip=true -P uat 命令解析:清c ...

  4. Springboot 激活指定的配置文件

    Springboot提供了很多方式,帮助我们实现不同环境应用配置的定制化.我们可以通过properties文件.yaml文件.环境变量和命令行参数定制化配置.这些配置的属性值可通过@Value注解注入 ...

  5. redis指定配置文件启动_redis基础知识整理-安装

    1.安装wget,稍后使用wget命令下载redis源码 yum install wget -y 2.在根目录创建 redis 目录并进入到redis目录下 mkdir /redis cd /redi ...

  6. 用maven按环境打包SpringBoot的不同配置文件

    利用maven按环境打包SpringBoot的不同配置文件 application-dev.properties对应开发环境 application-test.properties对应测试环境 app ...

  7. redis指定配置文件启动_Redis【简介amp;安装篇】

    1 Redis简介 1.1 Redis是什么 Redis是一个开源的,使用ANSI C 编写的,高性能Key-Value的NoSQL数据库. 1.2 Redis特点 i. 基于内存. ii. 可持久化 ...

  8. 你只知道@Value?设置server.port就能定义端口号是如何实现的?springboot读取配置文件的多种方式以及源码解析

    你只知道@Value?设置server.port就能定义端口号是如何实现的?springboot读取配置文件的多种方式以及原理解析 一.SpringBoot全局配置文件优先级 二.属性注入常用注解 1 ...

  9. linux启动jar服务命令,微服务编译、启动jar命令指定配置文件

    在部署项目的时候会有dev.test.uat.prod等环境配置文件 有两种方法去指定配置文件: 1.在启动服务的时候指定: 2.编译打包的时候指定,如果此时已经指定则启动的时候就不用再指定了. 1. ...

最新文章

  1. 巴菲特+查理芒格+投资理论+经典语录+给韭菜的启示
  2. 数据结构 判断单链表是否有环 C
  3. IDEA下JNI开发快速生成头文件方法
  4. [Python图像处理] 七.图像阈值化处理及算法对比
  5. (四)新建Maven项目
  6. 诺奖得主们年轻时都有哪些特征?擅长合作、论文高产是关键
  7. 华为mate9云闪付功能_华为手机日常使用技巧
  8. 实战中总结出来的CSS常见问题及解决办法
  9. 二进制安装kubernetes1.14.1
  10. X5之position_estimator_inav_main.c
  11. PreparedStatement类详解以及案例
  12. Ubuntu | 安装Pcan驱动和pcanview
  13. 【luogu P5320】勘破神机(数学)(数列特征方程)(第一类斯特林数)
  14. 显卡系列和种类你了解多少?AMD、NVIDIA显卡盘点
  15. 【数据结构】手撕单链表
  16. 操作系统(慕课李治军笔记)
  17. 统计分析之集中、离中、偏态和峰态的一些度量方法
  18. 阿里云服务器无法远程桌面连接
  19. 道路积水监测设备应用案例——积水点监测、立交积水监测、桥梁及隧道区域低洼区积水监测
  20. Spring注解的使用之配置组件

热门文章

  1. 笔试题——尤雨溪的10道题
  2. 详解二叉树的遍历实现,有图有代码
  3. 我是如何用 10 天自学编程,改变一生的?
  4. Python识别登录验证码
  5. greendao连接mysql_使用GreenDao操作数据库
  6. JavaWeb第九次:程序设计题:在MySQL,创建一个学生信息数据库Student,创建一张学生注册信息表message,包含name (姓名)、age (年龄)、sex (性别)、educ
  7. Multiple histogram-based face recognition with high speed FPGA implementation
  8. 程序员的另类境界:Rails创始人DHH驾驶保时捷赛车参加职业赛事
  9. 升级网线、路由器、无线网卡分别对网速的影响
  10. 2021年安徽省安全员C证考试总结及安徽省安全员C证模拟考试题库