SpringBoot配置多环境配置文件

举报
陈皮的JavaLib 发表于 2021/06/09 23:42:40 2021/06/09
【摘要】 目录 一、前言二、单个配置实现多环境配置三、多个配置文件形式四、激活配置文件方式五、配置文件加载顺序 一、前言 对于springboot工程,在不同环境(例如dev,test,prod等)可能有不同的配置信息(配置在application.yml或application.properties中),例如swagger.enable这个变量,在dev和...

一、前言

对于springboot工程,在不同环境(例如devtestprod等)可能有不同的配置信息(配置在application.ymlapplication.properties中),例如swagger.enable这个变量,在dev和test环境值为true,在prod环境的值为false。

在springboot中,有两种方式可以实现多环境配置文件:

  1. 一种是直接在一个配置文件中配置多个环境的配置信息(即多文档块,通过---分割),这种仅支持application.yml文件
  2. 一种是一个主配置文件(application.yml或application.properties)和多个环境配置文件(application-dev.yml,application-test.yml,application-prod.yml等)。

二、单个配置实现多环境配置

配置文件为application.yml,不同环境相同的配置信息可以配置在顶层文档块,不同环境不同配置信息配置在不同环境文档块中。通过spring.profiles.active变量可以在不同环境指定使用哪个配置文档块。

# 不同环境相同的配置信息可以配置在这个块
server:
  port: 8088
  servlet: context-path: /demo
# 激活指定使用哪个环境配置文件
spring:
  profiles: active: prod

---
spring:
  profiles: dev

swagger:
  enable: true
---
spring:
  profiles: test

swagger:
  enable: true
---
spring:
  profiles: prod

swagger:
  enable: false

  
 

三、多个配置文件形式

创建一个主配置文件,和不同环境的子配置文件,文件布局如下:

在这里插入图片描述

主配置文件:application.yml

# 不同环境相同的配置信息可以配置在这个文件
server:
  port: 8088
  servlet: context-path: /demo

# 激活指定使用哪个环境配置文件
spring:
  profiles: active: prod

  
 

dev环境:application-dev.yml

swagger:
  enable: true

  
 

test环境:application-test.yml

swagger:
  enable: true

  
 

prod环境:application-prod.yml

swagger:
  enable: false

  
 

四、激活配置文件方式

  1. 通过在主配置文件中(application.yml或application.properties)指定变量spring.profiles.active的值,例如spring.profiles.active=dev
  2. 命令行指定:java -jar springboot-demo.jar --spring.profiles.active=dev
  3. 虚拟机参数指定:-Dspring.profiles.active=dev

五、配置文件加载顺序

springBoot启动会扫描读取以下位置中的配置文件,优先级由高到低:

  1. -file:./config/,即当前项目下的config文件夹(src同级目录)

  2. -file:./,即当前项目下

  3. -classpath:./config/,即当前项目中resources资源文件夹下的config文件夹

  4. -classpath:./,即当前项目中resources资源文件夹下

文章来源: javalib.blog.csdn.net,作者:陈皮的JavaLib,版权归原作者所有,如需转载,请联系作者。

原文链接:javalib.blog.csdn.net/article/details/109694290

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。