SpringBoot配置多环境配置文件

一、前言

对于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资源文件夹下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈皮的JavaLib

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值