SpringBoot -- Profiles

Profiles具备环境隔离能力,可以将我们的项目快速切换开发、测试、生产环境
我们的使用步骤也很简单:
1. 标识环境:指定哪些组件、配置在哪个环境生效
2. 切换环境:这个环境对应的所有组件和配置就应该生效
接下来就进行详细的介绍

1. 使用

1.1 指定环境

  • Spring Profiles 提供一种隔离配置的方式,使其仅在特定环境生效;
  • 任何@Component, @Configuration@ConfigurationProperties 可以使用 @Profile 标记,来指定何时被加载。【容器中的组件都可以被 @Profile标记】

1.2 环境激活

  1. 配置激活指定环境;

      spring.profiles.active=dev
    
  2. 也可以使用命令行激活。–spring.profiles.active=dev

  3. 还可以配置默认环境; 不标注@Profile 的组件永远都存在。
    a. 如果不改变默认环境,默认的默认环境叫default
    b. 我们可以通过spring.profiles.default=test对默认环境进行配置

1.3 注意

  • spring.profiles.activespring.profiles.default 只能用到 无 profile 的文件中,如果在application-dev.yaml中编写就是无效的。

    其实这一点很好理解,只有将环境切换为dev后,application-dev.yaml才会生效。如果在application-dev.yaml中才将dev环境激活,那么,application-dev.yaml生效后会激活dev,但激活了dev后application-dev.yaml才会生效,两者互相矛盾,就好像死锁了,永远也无法生效。

  • 也可以额外添加生效文件,而不是激活替换。比如:
    spring.profiles.include[0]=common
    spring.profiles.include[1]=local

  • 生效的环境 = 激活的环境/默认环境 + 包含的环境

  • 项目里面这么用
    ○ 基础的配置mybatis、log、xxx:写到包含环境中,因为包含环境永远生效
    ○ 需要动态切换变化的 db、redis:写到激活的环境中

2. Profile 分组

创建prod组,指定包含db和mq配置

spring.profiles.group.prod[0]=db
spring.profiles.group.prod[1]=mq

使用 spring.profiles.active=prod ,就会激活prod,db,mq配置文件

2.3 Profile 配置文件

  • application-{profile}.properties可以作为指定环境的配置文件。
  • 激活这个环境,配置就会生效。最终生效的所有配置是
    • application.properties:主配置文件,任意时候都生效
    • application-{profile}.properties:指定环境配置文件,激活指定环境生效
  • profile优先级 > application
  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值