需求

开发时使用开发的 title
测试时使用测试 title
正式时使用正式 title,并使用正式的相关配置
可以使用 公共配置

环境

spring boot 2.6.1
dev:开发环境
test:测试环境
prod:正式环境

配置文件顺序说明

按配置文件中定义的先后顺序进行加载
后加载的会覆盖前面的
外部化配置参数会覆盖内部的配置参数(jar包外部的配置文件,会覆盖包内的)

  1. classpath

    1. classpath 根目录下
    2. classpath 根目录下 config 目录
  2. jar包当前目录
    1. jar包当前目录
    2. jar包当前目录下 config 目录
    3. jar包当前目录下 config子目录的直接子目录

具体看官方文档 https://docs.spring.io/spring-boot/docs/2.6.1/reference/html/features.html#features.external-config.files

各个环境配置文件

使用 yaml 配置文件格式

默认环境

applicaiton.yaml

server:port: 8090spring:profiles:active: devgroup:dev: "base"test: "base"prod: "base-prod"fox:title: 这是默认配置

开发环境

applicaiton-dev.yaml

server:port: 8080spring:config:activate:on-profile: dev
fox:title: "这是 dev 配置"

测试环境

applicaiton-test.yaml

server:port: 80spring:config:activate:on-profile: test
fox:title: 这是 test 配置

正式环境

applicaiton-prod.yaml

server:port: 80spring:config:activate:on-profile: prod
fox:title: 这是 prod 配置

使用 指定环境

直接使用idea 启动

访问浏览器http://localhost:8080/
输出

title=这是 dev 配置
active=dev

在启动日志中 The following profiles are active: dev,base存在,这里使用 spring.profiles.group 分组功能,如果注释掉该选项,那么该日志会输出 The following profiles are active: dev

jar 使用 指定环境 prod

指定启动环境使用spring.profiles.active参数

java -Dspring.profiles.active=prod -jar xxx.jar

访问浏览器http://localhost/all
输出

appId=9.234029424E9
appKey=rokfjlkj04935uiregjdfk
remark=这是 base-prod 配置
title=这是 prod 配置
active=prod

高级功能分组配置

有些公共配置,某些环境可以共用,那么有没有办法 直接加载该配置呢,答案是有,用 分组配置
使用指导的环境配置后,springboot会自动加载指定的组配置文件

默认环境

applicaiton.yaml

server:port: 8090servlet:encoding:charset: UTF-8force: trueenabled: truespring:profiles:active: devgroup:dev: "base"test: "base"prod: "base-prod"fox:title: 这是默认配置

文件 applicaiton-base.yaml

fox:config:appId: 111111111appKey: 123456789remark: 这是 base-prod 配置

文件applicaiton-base-prod.yaml

fox:config:appId: 09234029424appKey: rokfjlkj04935uiregjdfkremark: 这是 base-prod 配置

开发环境

文件applicaiton-dev.yaml

server:port: 8080spring:config:activate:on-profile: devfox:title: "这是 dev 配置"

测试环境

applicaiton-test.yaml

server:port: 80spring:config:activate:on-profile: testfox:title: 这是 test 配置

正式环境

applicaiton-prod.yaml

server:port: 80spring:config:activate:on-profile: prodfox:title: 这是 prod 配置

直接使用idea 启动

访问浏览器http://localhost:8080/all
输出

appId=111111111
appKey=123456789
remark=这是 base-prod 配置
title=这是 dev 配置
active=dev

jar 使用 指定环境 prod

指定启动环境使用spring.profiles.active参数启动后,访问浏览器http://localhost/all

java -Dspring.profiles.active=prod -jar xxx.jar

输出

appId=9.234029424E9
appKey=rokfjlkj04935uiregjdfk
remark=这是 base-prod 配置
title=这是 prod 配置
active=prod

导入指定目录配置文件

假设改地址配置文件/etc/project/application-my.yaml,需要spring boot加载

spring:config:location: "optional:/etc/project/application-my.yaml"

optional: 可选的

所有配置文件都设置可选

spring:config:on-location-not-found: ignore

代码地址
https://gitee.com/foxiswho/springboot-profile-more-demo

https://github.com/foxiswho/springboot-profile-more-demo

springboot 多环境配置文件相关推荐

  1. 「快学springboot」SpringBoot多环境配置文件

    [原创] Happyjava 2019-06-18 07:01:00 往期文章 「快学Docker」Docker简介.安装和Hello World实现 「快学springboot」使用springbo ...

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

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

  3. springboot根据环境装配配置文件、启动加载外置配置文件

    目录 一.profile功能 1.简介 2.application-profile功能 3.profile条件装配 4.profile分组 二.外部化配置 1.官方文档 2.获取系统的环境变量.属性( ...

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

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

  5. springBoot 启动指定配置文件环境多种方案

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

  6. springboot 不同环境不同的配置

    前言 我们在开发Spring Boot应用时,通常同一套程序会被应用和安装到几个不同的环境,比如:开发.测试.生产等.其中每个环境的数据库地址.服务器端口等等配置都会不同,如果在为不同环境打包时都要频 ...

  7. springboot多环境加载yml和logback配置

    大家好,我是烤鸭: 这是一篇关于springboot多环境加载yml和logback配置文件. 环境: 开发工具 idea(推荐)/eclipse(对yml支持不好) jdk  1.8 springb ...

  8. SpringBoot多环境配置与使用

    我们在开发应用的时候,通常同一套程序会被应用和安装到几个不同的环境中,比如开发.测试.生产等. 其中每个环境的数据库地址.服务器端口等配置都不同.如果在为不同环境打包时都要频繁的修改配置文件,那必将是 ...

  9. springboot多环境配置_编辑 SpringBoot|第五章:多环境配置

    多环境配置 在开发应用时,常用部署的应用是多个的,比如:开发.测试.联调.生产等不同的应用环境,这些应用环境都对应不同的配置项,比如swagger一般上在生产时是关闭的:不同环境数据库地址.端口号等都 ...

  10. 【Java从0到架构师】SpringBoot - 入门_配置文件_YAML

    SpringBoot - 入门_配置文件_YAML SpringBoot - 入门 @SpringBootApplication 可运行 jar - spring-boot-maven-plugin ...

最新文章

  1. Chrome 打印PDF技巧
  2. openresty 环境搭建
  3. mysql 除去列名打印_sql – 使用beeline时避免在列名中打印表名
  4. Android内存优化之内存泄漏
  5. cuda编程性能 分析工具 nvprof的使用
  6. SPSS数据分析之描述性统计、区间估计与假设检验【操作详解】
  7. MSagent 学习笔记
  8. BPSK调制系统MATLAB仿真实现(1)
  9. 微信小程序实现多视频video采坑,上下滑动视频
  10. 【直观详解】什么是正则化
  11. 电脑垃圾太多?这几个清理电脑的软件来看看吗?
  12. javascript方法和技巧大全1 (轉)
  13. 大学专业课真题(百度拷贝过来的)
  14. 【力扣刷题】剑指 Offer 40. 最小的k个数(大顶堆)
  15. fastjson 1.2.24 反序列化导致任意命令执行漏洞(CVE-2017-18349)
  16. DLNA DMR实现
  17. 王小川想走张一鸣和黄峥的老路,但终点不同
  18. S7-1200PLC Modbus TCP通信
  19. 独孤九剑第六式-支持向量机模型(SVM)
  20. Mysql详解——索引优化

热门文章

  1. 小胖IT大讲堂之一 .NET Reflector工具介绍
  2. 拓端tecdat|使用Python中的ImageAI进行对象检测
  3. 代写R语言assignment经常用到的代码语法分享!
  4. 拓端tecdat|数据预处理之异常值处理
  5. sql语句分组mysql_MySQL GROUP BY 语句_sql语句group by_分组
  6. ImportError: cannot import name ‘XGBClassifier‘
  7. 调用sklearn库--分类学习
  8. 为什么深度学习有效?(why deep learning works)
  9. Python下安装Opencv
  10. 用PBD制作餐饮店KPI分析仪-入门篇