Spring Boot 之 profile 多环境支持

前言

        在日常开发中,项目通常被分为:开发测试预发布线上四个环境。比如说针对数据库连接,每个环境的数据库连接也都是不一样的。

        我们通常会将这些参数信息都配置在一个配置文件中,然后通过很简单的一个操作,便可以在这几个环境之间来回切换,简化我们的开发过程。

        Maven 可以为我们提供多环境支持,在 pom.xml 中,可以通过配置 <profile>这个标签的方式,来解决多环境切换。

        Spring Boot 也为我们提供了 profile 多环境支持。profile 可以满足 Spring 对不同的环境提供不同配置的功能,通过激活、指定参数等方式来快速切换环境。接下来,我们分别通过 .properties 和 .yml 配置文件两种方式,来介绍 Spring Boot 提供的 profile 多环境支持。

1.properties配置

       我们在主配置文件编写时,文件名可以是 application-{profile}.properties,全局配置默认使用 application.properties的配置;

我们可以添加 3 个配置文件,分别是:

application.propertie:全局配置文件
application-dev.propertie:开发环境配置文件
application-test.propertie:测试环境配置文件

现在,我们为每个配置文件设置不同的端口号,通过端口号来展示 profile 多环境支持。

//application.properties
server.port=8080
//application-dev.properties
server.port=8081
//application-test.properties
server.port=8082

比如现在需要切换到开发环境,则需要在主配置文件中添加如下参数配置,来激活相对应的 profile:

//application.properties
server.port=8080
//(如下配置)表示切换到开发环境
spring.profiles.active=dev 

测试如图所示:
在这里插入图片描述
        接下来,不同环境的 MySQL 数据库等各种不同连接参数,就可以在相对应的不同环境的 properties 配置文件中进行配置了。只需要在全局配置文件中,使用spring.profiles.active=xxx来进行简单切换即可。

2.yml配置

yml 配置文件,针对 profile 多环境支持,有两种方式可以实现。

第一种:同 properties 一模一样

        添加 application.yml、application-dev.yml、application-test.yml 等多个配置文件,在全局配置文件 application.yml 中,使用如下方式来完成对个环境之间的切换。

server:
  port: 8080
spring:
  profiles:
    active: dev

第二种:使用 yml 提供多文档块方式

        使用多文档块方式,可以省去 application-dev.yml、application-test.yml 多个配置文件的编写。只需要使用一个 application.yml 即可。我们选择激活 test 测试环境,此时 Tomcat 便已经在 test 环境相对应的 8082 端口启动,配置如下图所示:
在这里插入图片描述
使用文档块方式,如何激活 profile?

  1. 可以通过 application.yml 全局配置文件,直接指定;(也可以通过如下第2、3种方式,通过第2、3 种方式配置的优先级,大于直接在 application.yml 配置文件中的配置)
  2. 在配置中传入命令行参数(在Program arguments中,添加 --spring.profiles.active=dev)
  3. 在配置中传入虚拟机参数(在 VM options中,添加-Dspring.profiles.active=dev)
  4. 打包上线时,可以通过命令方式:java -jar spring-boot-02-config-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev;在最后通过 --spring.profiles.active=dev的方式指定。(上线时这种方式比较方便,可以通过参数来随时切换环境)
    在这里插入图片描述

博主写作不易,来个关注呗

求关注、求点赞,加个关注不迷路 ヾ(◍°∇°◍)ノ゙

博主不能保证写的所有知识点都正确,但是能保证纯手敲,错误也请指出,望轻喷 Thanks♪(・ω・)ノ

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

扛麻袋的少年

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

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

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

打赏作者

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

抵扣说明:

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

余额充值