前言

  • spring boot version : 2.0.0.RELEASE
  • maven version : 3.5.0

在不同的环境下,依赖的外部资源是不一样的。比如,在windows上开发,在linux下进行测试时,无法将开发环境和测试i环境构造成一致的。
此时,就需要两个配置文件来解决此事。开发环境一个配置文件,测试环境一个配置文件。

方式1

使用 --spring.profiles.active=xxx。参考 Spring Boot Reference Guide : 24.4 Profile-specific Properties

  • 步骤1:
    先为开发环境和测试环境分别编写配置文件,配置文件中保留不同之处。开发环境配置文件为:application-dev.properties;测试环境配置文件为:application-test.properties。
    再将开发环境和测试环境中,相同的配置放到同一个配置文件(application.properties)中。
  • 步骤2:
    启动时,使用 --spring.profiles.active=xxx,指定不同的profile。
    开发环境启动时,在命令行参数中提供spring.profiles.active=dev。例:mvn spring-boot:run -Dspring.profiles.active=dev
    测试环境启动时,在命令行参数中提供spring.profiles.active=test。例:mvn spring-boot:run -Dspring.profiles.active=test

说明

  • java 命令启动时,- -spring.profiles.active=dev,前面的“- -”很重要。
  • mvn 命令启动时,-Dspring.profiles.active=dev,前面的“-D”很重要。
  • spring.profiles.active=dev 时,配置文件匹配顺序:application-dev.properties、application.properties。
    • 如果application-dev.properties中有的配置,则会以application-dev.properties的配置为准。
    • 如果application-dev.properties中没有的配置,则会以application.properties的配置为准。

方式2

使用 --spring.config.name=xxx。参考 Spring Boot Reference Guide :24.3 Application Property Files

  • 步骤1:
    先为开发环境和测试环境分别编写配置文件,配置文件中保留不同之处。开发环境配置文件为:application-dev.properties;测试环境配置文件为:application-test.properties。
  • 步骤2:
    启动时,使用 --spring.config.name=xxx,指定配置文件名。
    开发环境启动时,在命令行参数中提供spring.config.name=application-dev。例:mvn spring-boot:run -Dspring.config.name=application-dev
    测试环境启动时,在命令行参数中提供spring.config.name=application-test。例:mvn spring-boot:run -Dspring.config.name=application-test

说明

  • java 命令启动时,–spring.profiles.active=application-dev,前面的“–”很重要。
  • mvn 命令启动时,-Dspring.profiles.active=application-dev,前面的“-D”很重要。
  • 当- -spring.config.name=application-dev 时,配置文件匹配顺序:application-dev.properties。
    • 如果application-dev.properties中有的配置,则会以application-dev.properties的配置为准。
    • 如果application-dev.properties中没有的配置,则为null。

方式3

使用 --spring.config.location=xxx。参考 Spring Boot Reference Guide :24.3 Application Property Files

同 --spring.config.name=xxx类似。但是,–spring.config.location=xxx可以连配置文件路径一起修改,也可以指定多个配置文件。
例:mvn spring-boot:run -Dspring.config.location=classpath:/config/application-test2.properties,classpath:application-test1.properties

说明

  • 指定多个配置文件时,后给出的配置文件覆盖先给出的配置文件。
    如果application-test1.properties中有的配置,则会以application-test1.properties的配置为准。
  • 如果application-test1.properties中没有的配置,但application-test2.properties中有的配置,则会以application-test2.properties的配置为准。
  • 如果application-test1.properties和application-test2.properties中都没有的配置,则为null。

上述方法失效情况说明

  • 当 spring-boot-devtools 起效时,上述方法失效。
  • 当 pom文件中包含spring-boot-devtools 时,且以 mvn spring:boot 方式启动时,spring-boot-devtools 起效,上述方法失效。(可以使用个pom来解决,默认的pom中,包含spring-boot-devtools ;另外一个pom中,如pom-test.xml,不包含spring-boot-devtools。用mvn -f pom-test.xml spring:boot启动即可。)
  • 当pom文件中包含spring-boot-devtools 时,且以 java -jar 方式启动时,spring-boot-devtools 自动失效,上述方法有效。
  • 使用eclipse时,有无spring-boot-devtools,上述方式都有失效。

【SpringBoot】 启动时,修改默认配置文件名称相关推荐

  1. 使用Maven tomcat:run命令启动web项目时修改默认端口的方法

    在使用maven时,修改插件tomcat启动端口.一开始我在pom.xml配置文件里面修改,如下面所示: 1 2 3 4 5 6 7 8 9 <plugin> <groupId> ...

  2. 启动rrt什么意思_面试官:你来说一下springboot启动时的一个自动装配过程吧!...

    前言 继续总结吧,没有面试就继续夯实自己的基础,前阵子的在面试过程中遇到的各种问题陆陆续续都会总结出来分享给大家,这次要说的也是面试中被问到的一个高频的问题,我当时其实没答好,因为很早之前是看过spr ...

  3. springboot启动时控制台打印图案

    springboot启动时控制台打印图案如下: 1.假如我们不想看到这个图案 public static void main(String[] args) {SpringApplication app ...

  4. 解决:Activiti7与SpringBoot整合时,默认生成的activiti数据库中只有17张表,无另外8张历史表

    问题 Activiti7与SpringBoot整合时,默认生成的activiti数据库中只有17张表,无另外8张历史表. 原因 Activiti默认关闭了历史表的使用. 解决 在连接数据库的appli ...

  5. SpringBoot启动时就会自动去连接mongdo DB指向的url

    SpringBoot启动时就会去连接mongdo DB指向的url:

  6. Springboot 启动时Bean初始化,启动异常-Assert.isTrue(condition,message) 报错

    Springboot 启动时Bean初始化启动异常Assert.isTrue(condition,message) 报错,如果 condition为false 则会出现 java.lang.Illeg ...

  7. SpringBoot启动时 提示没有主清单属性 MANIFEST

    SpringBoot启动时 提示没有主清单属性 MANIFEST <?xml version="1.0" encoding="UTF-8"?>< ...

  8. SpringBoot启动时将数据库数据加载到内存

    文章目录 为什么需要将参数存入缓存?以及选择何种方式 SpringBoot启动时将数据库参数表参数加载到内存 常见思路 思路1: 使用@PostConstruct 思路2: 实现CommandLine ...

  9. Nginx入门3:Nginx常用命令;(启动nginx;启动时,指定配置文件;测试配置文件,查看当前使用的哪个配置文件;显示nginx版本;停止nginx;修改配置文件后,重载配置文件;)

    说明: (1)本篇博客介绍nginx常用的一些命令: 目录 一:启动Nginx:[/usr/sbin/nginx]: 1. 使用[/usr/sbin/nginx]去启动Nginx: 2.可以通过浏览器 ...

最新文章

  1. Oracle 10g配置RMAN RECOVERY CATALOG
  2. 行人被遮挡问题怎么破?百度提出PGFA新方法,发布Occluded-DukeMTMC大型数据集 | ICCV 2019...
  3. ajax send上传出错,Ajax在xmlhttp.send上出错
  4. jmeter 多机负载压测与服务器性能监测
  5. [羊城杯 2020]Bytecode [UTCTF2020]babymips
  6. 全球与中国终端天线市场发展战略与运营规划分析报告
  7. c++ array赋值问题
  8. 什么是语音复用设备?
  9. vmware linux 编译内核,VMWare编译linux内核的注意事项
  10. linux文件类型为目录,在Linux系统中,基本的文件类型分为()文件,目录文件和文件, 所有的I/..._考试资料网...
  11. React环境配置(第一个React项目)
  12. Java的世界如此美妙
  13. 爬取mm131套图并下载到本地
  14. html和css命名标准,CSS命名规则和命名方法
  15. 我国计算机科学技术的成就,计算机科学技术百科全书
  16. w10怎样关闭对计算机更改,W10电脑系统自动更新怎么关闭
  17. 【JavaScript 逆向】webpack 之某妹游戏登录逆向
  18. w8服务器dns修改,怎么修改DNS Win8修改DNS服务器地址的具体步骤图解
  19. m分别使用ESN网络,ESN+RBF神经网络以及ESN+Volterra网络进行数据预测对比仿真
  20. 雷林鹏最人性化访谈:做投资不仅仅是要赚钱,要成为有价值的人

热门文章

  1. Ibatis的类型处理器TypeHandler解析
  2. linux系统下如何禁止ping命令或允许ping命令的方法
  3. 手工、工具分别实现cookie注入
  4. 报表设计器条形码支持类型
  5. 使用JDBC操作基于Oracle的CLOB,BLOB字段类型
  6. word2vec的通俗理解
  7. webapi 获取请求参数
  8. SQL2005利用ROW_NUMER实现分页的两种常用方式
  9. dojo Quick Start/dojo入门手册--开始使用dojo.js
  10. 如何在一天内被Google和百度收录