springboot 多环境配置文件
需求
开发时使用开发的 title
测试时使用测试 title
正式时使用正式 title,并使用正式的相关配置
可以使用 公共配置
环境
spring boot 2.6.1
dev:开发环境
test:测试环境
prod:正式环境
配置文件顺序说明
按配置文件中定义的先后顺序进行加载
后加载的会覆盖前面的
外部化配置参数会覆盖内部的配置参数(jar包外部的配置文件,会覆盖包内的)
- classpath
- classpath 根目录下
- classpath 根目录下
config
目录
- jar包当前目录
- jar包当前目录
- jar包当前目录下
config
目录 - 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 多环境配置文件相关推荐
- 「快学springboot」SpringBoot多环境配置文件
[原创] Happyjava 2019-06-18 07:01:00 往期文章 「快学Docker」Docker简介.安装和Hello World实现 「快学springboot」使用springbo ...
- springboot多模块打包指定子模块环境配置文件
springboot多模块打包指定子模块环境配置文件 父pom.xml maven 命令:mvn clean package -Dmaven.test.skip=true -P uat 命令解析:清c ...
- springboot根据环境装配配置文件、启动加载外置配置文件
目录 一.profile功能 1.简介 2.application-profile功能 3.profile条件装配 4.profile分组 二.外部化配置 1.官方文档 2.获取系统的环境变量.属性( ...
- 用maven按环境打包SpringBoot的不同配置文件
利用maven按环境打包SpringBoot的不同配置文件 application-dev.properties对应开发环境 application-test.properties对应测试环境 app ...
- springBoot 启动指定配置文件环境多种方案
springBoot 启动指定配置文件环境理论上是有多种方案的,一般都是结合我们的实际业务选择不同的方案,比如,有pom.xml文件指定.maven命令行指定.配置文件指定.启动jar包时指定等方案, ...
- springboot 不同环境不同的配置
前言 我们在开发Spring Boot应用时,通常同一套程序会被应用和安装到几个不同的环境,比如:开发.测试.生产等.其中每个环境的数据库地址.服务器端口等等配置都会不同,如果在为不同环境打包时都要频 ...
- springboot多环境加载yml和logback配置
大家好,我是烤鸭: 这是一篇关于springboot多环境加载yml和logback配置文件. 环境: 开发工具 idea(推荐)/eclipse(对yml支持不好) jdk 1.8 springb ...
- SpringBoot多环境配置与使用
我们在开发应用的时候,通常同一套程序会被应用和安装到几个不同的环境中,比如开发.测试.生产等. 其中每个环境的数据库地址.服务器端口等配置都不同.如果在为不同环境打包时都要频繁的修改配置文件,那必将是 ...
- springboot多环境配置_编辑 SpringBoot|第五章:多环境配置
多环境配置 在开发应用时,常用部署的应用是多个的,比如:开发.测试.联调.生产等不同的应用环境,这些应用环境都对应不同的配置项,比如swagger一般上在生产时是关闭的:不同环境数据库地址.端口号等都 ...
- 【Java从0到架构师】SpringBoot - 入门_配置文件_YAML
SpringBoot - 入门_配置文件_YAML SpringBoot - 入门 @SpringBootApplication 可运行 jar - spring-boot-maven-plugin ...
最新文章
- Chrome 打印PDF技巧
- openresty 环境搭建
- mysql 除去列名打印_sql – 使用beeline时避免在列名中打印表名
- Android内存优化之内存泄漏
- cuda编程性能 分析工具 nvprof的使用
- SPSS数据分析之描述性统计、区间估计与假设检验【操作详解】
- MSagent 学习笔记
- BPSK调制系统MATLAB仿真实现(1)
- 微信小程序实现多视频video采坑,上下滑动视频
- 【直观详解】什么是正则化
- 电脑垃圾太多?这几个清理电脑的软件来看看吗?
- javascript方法和技巧大全1 (轉)
- 大学专业课真题(百度拷贝过来的)
- 【力扣刷题】剑指 Offer 40. 最小的k个数(大顶堆)
- fastjson 1.2.24 反序列化导致任意命令执行漏洞(CVE-2017-18349)
- DLNA DMR实现
- 王小川想走张一鸣和黄峥的老路,但终点不同
- S7-1200PLC Modbus TCP通信
- 独孤九剑第六式-支持向量机模型(SVM)
- Mysql详解——索引优化
热门文章
- 小胖IT大讲堂之一 .NET Reflector工具介绍
- 拓端tecdat|使用Python中的ImageAI进行对象检测
- 代写R语言assignment经常用到的代码语法分享!
- 拓端tecdat|数据预处理之异常值处理
- sql语句分组mysql_MySQL GROUP BY 语句_sql语句group by_分组
- ImportError: cannot import name ‘XGBClassifier‘
- 调用sklearn库--分类学习
- 为什么深度学习有效?(why deep learning works)
- Python下安装Opencv
- 用PBD制作餐饮店KPI分析仪-入门篇