spring.profiles.active和spring.profiles.include的使用与区别

参考链接:spring.profiles.active和spring.profiles.include的使用与区别_wysghmbb的博客-CSDN博客

业务场景

一套程序可能会被部署到不同的环境。开发、测试、生产环境有不同的配置信息,包括jdbc地址、ip、端口等。如果在同一个配置文件中,每次部署去改配置,会非常麻烦且容易出错。

优化方式

spring.profiles.active属性

一个好方法就是创建不同的配置文件,且命名规则遵循application-${profile}.properties,例如:

  1. 开发环境配置文件:application-dev.properties
  2. 测试环境配置文件:application-test.properties
  3. 生产环境配置文件:application-prod.properties

当然,我们不能删除项目最顶层的application.properties配置,在该文件中,根据部署场景不同,切换不同的配置文件:配置spring.profiles.active,属性值为${profile}

  1. spring.profiles.active=dev:启用application-dev.properties
  2. spring.profiles.active=test:启用application-test.properties
  3. spring.profiles.active=prod:启用application-prod.properties

启动时指定:

在执行有参启动时,可以在命令中进行指定要选用的配置文件,例如:
java -jar xx.jar --spring.profiles.active=test
这个命令的优先级是最高的,即使application.properties中已经配置spring.profiles.active=dev,最终程序还是会用application-test.properties配置文件。

spring.profiles.include属性

再进一步,对于开发环境,想用不同的配置文件存储开发环境不同的配置,例如:
application-dev1.properties中存储jdbc信息
application-dev2.properties中存储ip、端口信息
即在启用application-dev.properties开发环境(主)配置文件时,同时启用application-dev1.properties和application-dev2.propertie。
那么,可以使用spring.profiles.include属性:同时启用其他的profile

配置方法:

  1. 若是properties文件:spring.profiles.include=dev1,dev2
  2. 若是yaml文件中,
spring:
  profiles:
    active: dev
    include: dev1,dev2

配置的位置和区别:

  1. 配置方式一:application.properties中,配置spring.profiles.active=dev的同时指定spring.profiles.include=dev1,dev2
  2. 配置方式二:application.properties中,配置spring.profiles.active=dev,application-dev.properties中,配置spring.profiles.include=dev1,dev2。使用application-dev.properties时自动就激活了dev1、dev2两个文件,不用再次指定。(个人认为第二种方法更好)

区别:

  1. 第一种方式启动时,控制台打印The following profiles are active:dev1,dev2,dev
  2. 第二种方式启动时,控制台打印The following profiles are active:dev, dev1,dev2
    按照顺序,后面的覆盖前面的
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值