当我们使用properties文件作为Spring Boot的配置文件而不是yaml文件时,怎样实现多环境使用不同的配置信息呢?
    在Spring Boot中,多环境配置的文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,如下所示:
  • application-dev.properties:开发环境;
  • application-test.properties:测试环境;
  • application-prod.properties:生产环境;
 
    至于哪个具体的配置文件会被加载,需要在application.properties文件中通过spring.profiles.active属性来设置,而该属性可以写在配置文件中,也可以通过启动时命令来设置。
    如application.properties中的spring.profiles.active=test,那么就会加载application-test.properties中的配置的属性。
 
  • 假设有针对不同环境的三个配置文件:application-dev.properties,application-test.properties,application-prod.properties。
  • 这三个文件中设置不同的server.port属性,dev环境为1111,test环境为2222,prod为3333。
  • application.properties中设置spring.profiles.active=dev,意为默认以dev环境的配置文件为准。
  • 当我们执行java -jar XXX.jar时,可以测试到服务器端口为1111,也就是dev配置文件中设置的。
  • 当我们执行java -jar XXX.jar --spring.profiles.active=test,可以测试到端口被设置为2222,也就是test配置文件中设置的。
  • 同理,当我们执行jar -jar XXX.jar --spring.profiles.active=prod,可以观察到服务端口被设置为3333,也就是生产环境的配置。
 
 
总结多环境的配置思路:
  1. 在application.properties中配置通用内容,使用spring.profiles.active=dev,指定默认的配置。
  2. 在application-{profile}.properties中配置各个环境不同的内容。
  3. 通过命令行方式去激活不同的环境配置。
 
内容来源:《Spring Cloud微服务实战》
 

Spring Boot 使用properties如何多环境配置的更多相关文章

  1. 51. spring boot属性文件之多环境配置【从零开始学Spring Boot】

    原本这个章节是要介绍<log4j多环境不同日志级别的控制的>但是没有这篇文章做基础的话,学习起来还是有点难度的,所以我们先一起了解下spring boot属性文件之多环境配置,当然文章中也 ...

  2. Spring Boot 2.4 对多环境配置的支持更改

    在目前最新的Spring Boot 2.4版本中,对配置的加载机制做了较大的调整.相关的问题最近也被问的比较多,所以今天就花点时间,给大家讲讲Spring Boot 2.4的多环境配置较之前版本有哪些 ...

  3. spring boot:基于profile的多环境配置(spring boot 2.3.4)

    一,为什么要进行多环境配置? 1,没有人会在生产环境中进行开发和测试, 所以通常会有多个环境的划分: 工程师本地的开发环境 进行测试的测试环境 最终上线的生产环境 每个环境对应不同的数据库/缓存等数据 ...

  4. Spring Boot 系列(三)属性配置&自定义属性配置

    在使用spring boot过程中,可以发现项目中只需要极少的配置就能完成相应的功能,这归功于spring boot中的模块化配置,在pom.xml中依赖的每个Starter都有默认配置,而这些默认配 ...

  5. 【转】spring boot application.properties 配置参数详情

    multipart multipart.enabled 开启上传支持(默认:true) multipart.file-size-threshold: 大于该值的文件会被写到磁盘上 multipart. ...

  6. spring boot 整合 quartz 集群环境 实现 动态定时任务配置【原】

    最近做了一个spring boot 整合 quartz  实现 动态定时任务配置,在集群环境下运行的 任务.能够对定时任务,动态的进行增删改查,界面效果图如下: 1. 在项目中引入jar 2. 将需要 ...

  7. Spring boot application.properties 配置

    原文链接: http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.ht ...

  8. spring boot application.properties 属性详解

    2019年3月21日17:09:59 英文原版: https://docs.spring.io/spring-boot/docs/current/reference/html/common-appli ...

  9. 分布式事务、多数据源、分库分表中间件之spring boot基于Atomikos+XADataSource分布式事务配置(100%纯动态)

    本文描述spring boot基于Atomikos+DruidXADataSource分布式事务配置(100%纯动态),也就是增加.减少数据源只需要修改application.properties文件 ...

随机推荐

  1. 20172329 2018-2019《Java程序设计与数据结构》课程总结

    作者:lalalouye(20172329王文彬) 2018-2019年大二Java程序设计与数据结构课程总目录:第一周 第二周 第三周 第四周 第五周 第六周 第七周 第八周 第九周 实验一 实验二 ...

  2. 一个关于狗记录的Java练习

    package 狗场;import java.util.*;public class dogRoom { /** * 作者.范铭祥 * 狗场的狗体重查询问题 */ public static void ...

  3. Internet History, Technology and Security (Week5.1)

    Week5 The Transport layer is built on the Internetwork layer and is what makes our network connectio ...

  4. 关闭Centos5.5的写磁盘I/O功能

    一个Linux文件默认有3个时间. atime:对此文件的访问时间. ctime:此文件inode发生变化的时间. mtime:此文件的修改时间. 如果有多个小文件(比如Web服务器的页面上有多个小图 ...

  5. CSS和JS引用图片(资源)的路径问题

    做项目时遇到了这个问题,特此写个笔记记一下

  6. 'java' 不是内部或外部命令,也不是可运行的程序的两个解决办法

    第一个原因: 是环境变量path没有配置好,做如下图配置     第二个原因:   如果java环境有一段时间没有启动,再启动的时候提示这个,解决办法是进入path环境配置,如上图中界面,将JAVA_ ...

  7. 关于mysqlbinlog的重要性.

    今天在做update更新数据的时候,因为没有统一好需要更新的数据编执行了update操作,所以需要回滚到先前的数据,所以就赶紧去服务器看binlog日志,结果一看binlog竟然没有开启,把我给惊的啊 ...

  8. CPU结合CS、IP寄存器进行执行程序

    上一篇介绍了CS.IP两个寄存器内容,当我们运行一个可执行文件时,我们需要另外一个程序来将这个可执行文件加载到内存当中,关于这个加载可执行文件的程序,我们在这里不管他,点一下即可,一般是通过操作系统的 ...

  9. 每个Android开发者必须知道的内存管理知识

    原文:每个Android开发者必须知道的内存管理知识 拷贝在此处,以备后续查看. 相信一步步走过来的Android从业者,每个人都会遇到OOM的情况.如何避免和防范OOM的出现,对于每一个程序员来说确 ...

  10. vue 组件 子向父亲通信用自定义方法用事件监听

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>T ...