【SpringBoot】多环境开发、分组管理、开发控制

在这里插入图片描述

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
个人主页:.29.的博客
学习社区:进去逛一逛~

在这里插入图片描述



一、多环境开发 —— yaml格式



单配置文件、多环境(共享配置文件)

  • 配置文件中,使用---分隔不同的环境,从而实现多环境
  • 划分出一块环境,作为设置公共配置的应用环境,在当中指定应用哪个环境中的属性配置。
# 这里是公共配置

# 设置应用哪个环境(这里应用dev环境)
spring:
  profiles:
    active: dev

---

# 假设这是生产环境
# 过时格式设置环境
spring:
  profiles: pro

# 具体参数设置
server:
  port: 80
---

# 假设这是开发环境
# 标准格式设置环境
spring:
  config:
    activate:
      on-profile: dev

# 具体参数设置
server:
  port: 81

---

# 假设这是测试环境
# 推荐使用此格式(标准格式)
spring:
  config:
    activate:
      on-profile: test

# 具体参数设置
server:
  port: 82

小结

  1. 多环境开发需要设置若干种常用的环境,例如开发环境、生产环境、测试环境
  2. yaml格式中设置多环境,使用---区分环境,设置边界
  3. 每种环境的区别在于加载的配置属性不同
  4. 启动某种环境时,需要指定启动时使用的环境



多配置文件、多环境(独立配置文件)

  • 主配置文件中设置公共配置 —— 全局

  • 环境分类配置文件中常用于配置冲突属性 —— 局部

  • 在这里插入图片描述


  1. 主启动配置文件application.yml
# 设置应用哪个环境(这里应用dev环境)
spring:
  profiles:
    active: dev
  • 使用include属性在激活指定环境的情况下,可以同时对多个环境进行加载使其生效,多个环境间使用逗号分隔:
spring:
  profiles:
    active: dev
    include: test,pro
# 这样书写,文件的加载顺序是:test 》 pro 》 dev
# 当主环境dev与其他环境有相同属性时,主环境属性失效;其他环境中有相同的属性时,最后加载的环境属性生效

  1. 环境分类配置文件application-pro.yml:
server:
  port: 80

  1. 环境分类配置文件application-dev.yml:
server:
  port: 81

  1. 环境分类配置文件application-test.yml:
server:
  port: 82

小结

  • 可以使用独立配置文件定义环境属性
  • 独立配置文件便于线上维护更新保障系统安全性



二、多环境开发 —— properties格式

  • properties文件多环境配置仅支持多文件格式
  • 主配置文件中设置公共配置 —— 全局
  • 环境分类配置文件中常用于配置冲突属性 —— 局部

  1. 主启动配置文件application.properties
# 设置应用哪个环境(这里应用test环境)
spring.profiles.active=test

  1. 环境分类配置文件application-pro.properties:
server.port=80

  1. 环境分类配置文件application-dev.properties:
server.port=81

  1. 环境分类配置文件application-test.properties:
server.port=82



三、多环境分组管理

  • 使用include属性在激活指定环境的情况下,可以同时对多个环境进行加载使其生效,多个环境间使用逗号分隔

  • 当主环境dev与其他环境有相同属性时,主环境属性失效;其他环境中有相同的属性时,最后加载的环境属性生效

  • 在这里插入图片描述


👇👇👇

  1. 从SpringBoot2.4版本开始使用group属性代替include属性,降低了配置书写量
  2. 使用group属性定义多种主环境与子环境的包含关系
    • (分组示例)根据功能对配置文件中的信息进行拆分,并制作成独立的配置文件,命名规则如下:
      • application-devDB.yml
      • application-devRedis.yml
      • application-devMVC.yml
spring:
  profiles:
    active: dev
    group:
      "dev": devDB,devRedis,devMVC
      "pro": proDB,proRedis,proMVC
      "test": testDB,testRedis,testMVC
# 这里启动dev组,配置文件扫描顺序是:dev 》 devDB 》 devRedis 》 devMVC      
# 当主环境dev与其他环境有相同属性时,主环境属性失效;其他环境中有相同的属性时,最后加载的环境属性生效

多环境开发使用group属性设置配置文件分组,便于线上维护管理




四、多环境开发控制

Maven 与 SpringBoot 多环境兼容

  1. Maven中设置多环境属性
    <profiles>
        
        <!--application-dev.yml配置文件配置的环境-->
        <profile>
            <id>dev_env</id>
            <properties>
                <profile.active>dev</profile.active>
            </properties>
            <!--使用activation标签,配置activeByDefault的默认启动配置-->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>

        <!--application-pro.yml配置文件配置的环境-->
        <profile>
            <id>pro_env</id>
            <properties>
                <profile.active>pro</profile.active>
            </properties>
        </profile>

        <!--application-test.yml配置文件配置的环境-->
        <profile>
            <id>test_env</id>
            <properties>
                <profile.active>test</profile.active>
            </properties>
        </profile>
        
    </profiles>

  1. SpringBoot中引用Maven属性
  • 使用@@符号将Maven属性括起来表示引用
spring:
  profiles:
    active: @profile.active@            # 因为Maven中为dev配置了activeByDefault的默认启动配置,这里代表dev组
    group:
      "dev": devDB,devRedis,devMVC
      "pro": proDB,proRedis,proMVC
      "test": testDB,testRedis,testMVC

  1. 执行Maven打包指令,生成boot工程打包的.jar文件
mvn clean
mvn package

在这里插入图片描述


小结

  • 当Maven和SpringBoot同时对多环境进行控制时,以Maven为主,SpringBoot使用@...@占位符获取Maven对应配置属性值
  • 基于SpringBoot读取Maven配置属性的前提下,如果IDEA下测试工程时pom.xml每次更新需要手动compile方可生效

在这里插入图片描述




在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

.29.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值