spring.profiles.active和spring.profiles.include的使用及区别说明

转自:

spring.profiles.active和spring.profiles.include的使用及区别说明

下文笔者讲述spring.profiles.active和spring.profiles.include的区别简介说明,如下所示

我们都知道,在日常开发中,开发|测试|生产环境都拥有不同的配置信息
 如:
   jdbc地址、ip、端口等
此时为了避免每次都修改全部信息,我们则可以采用以上的属性处理此类异常

spring.profiles.active属性

例:
 配置文件,可使用以下方式定义
   application-${profile}.properties 
开发环境配置文件:application-dev.properties
测试环境配置文件:application-test.properties
生产环境配置文件:application-prod.properties

application.properties配置
   则可以根据不同的属性切换到不同的配置文件
spring.profiles.active,属性值为${profile}。

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

例:

java -jar xx.jar --spring.profiles.active=test
注意事项:
   此命令的优先级最高
   当程序启动时,加入此环境变量时
   则会自动启用 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

配置方法

当properties文件:
   spring.profiles.include=dev1,dev2
yaml文件配置方法
spring.profiles.include:
-dev1
-dev2
或
spring.profiles.include:dev1,dev2
 

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

配置方式不同

配置方式一:
  application.properties中,配置spring.profiles.active=dev的同时指定spring.profiles.include=dev1,dev2
配置方式二:
   application.properties中,配置spring.profiles.active=dev,application-dev.properties中
   配置spring.profiles.include=dev1,dev2
   使用application-dev.properties时自动就激活了dev1、dev2两个文件,不用再次指定

区别

第一种方式启动时
   控制台打印The following profiles are active:dev1,dev2,dev
第二种方式启动时
   控制台打印The following profiles are active:dev, dev1,dev2
按照顺序
   后面的覆盖前面
 

例:

application-dev.properties配置

my.name=dev
my.height=190

#同时触发dev1和dev2的激活
spring.profiles.include=dev1,dev2
 
application-dev1.properties配置:

my.name=dev1
my.height=191
 
application-dev2.properties配置:

my.name=dev2
#my.height=192
 
application-prod.properties配置:

my.name=prod
my.height=182
 
application-prod1.properties配置:

my.name=prod1
my.height=188
 
application-prod2.properties配置:

my.name=prod2
my.height=182
 
测试一:
在application.properties配置文件中,指定

#激活的是开发环境配置文件
spring.profiles.active=dev
 
启动时不指定参数
结果:
  打印的内容为:姓名:dev2,身高:191

----具体原因如下所示----
先加载application.properties
再加载application-dev.properties,
my.name=dev
my.height=190
加载application-dev1.properties,
my.name=dev1
my.height=191
加载application-dev2.properties,
my.name=dev2
my.height=191
 
测试二:
  在测试一的基础上,启动时指定参数:–spring.profiles.active=prod
  优先级最高,会使用生产环境配置文件
以上配置信息,将输出以下信息
打印的内容为:姓名:prod,身高:182

测试三:
在application.properties配置文件中,指定

#激活的是生产环境配置文件
spring.profiles.active=prod
#同时触发prod1和prod2的激活
spring.profiles.include=prod1
 
启动时不指定参数
---运行以上信息,将输出以下信息
The following profiles are active: prod1,prod2,prod
打印的内容为:姓名:prod,身高:182
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值