SpringBoot2运维实用篇(三)—— 多环境开发

03、多环境开发

在这里插入图片描述

3.1、多环境开发(YAML版)

3.1.1、单文件配置格式

1、设置多环境并指定启动环境

在这里插入图片描述

2、推荐使用新的格式

在这里插入图片描述

小结:

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

3.1.2、多配置文件格式

1、问题:

在这里插入图片描述

多个环境写在一个配置文件中不太适用

2、多文件配置格式

① 主启动配置文件application.yml

#应用环境
spring:
  profiles:
    active: test

② 环境分类配置文件application-pro.yml——生产环境

server:
  port: 8080

③ 环境分类配置文件application-dev.yml——开发环境

server:
  port: 8081

④ 环境分类配置文件application-test.yml——测试环境

server:
  port: 8082

小结:

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

3.2、多环境开发(properties版)

① 主启动配置文件application.properties

spring.profiles.active=dev

② 环境分类配置文件application-pro.properties——生产环境

server.port=9080

③ 环境分类配置文件application-dev.properties——开发环境

server.port=9081

④ 环境分类配置文件application-test.properties——测试环境

server.port=9082

注意事项:

properties文件多环境配置仅支持多文件格式,无合并的单一文件格式

3.3、多环境开发独立配置文件书写技巧

1、书写技巧(一)

  • 主配置文件中设置公共配置(全局)
  • 环境分类配置文件中常用于设置冲突属性(局部)

2、书写技巧(二)

  • 根据功能对配置文件中的信息进行拆分,并制作成独立的配置文件,命名规则如下:

    • application-devDB.yml
    • application-devRedis.yml
    • application-devMVC.yml
  • 使用include属性在激活指定环境的情况下,同时对多个环境进行加载使其生效,多个环境间使用逗号分隔

spring:
  profiles:
    active: dev
    include: devMVC,devDB

注意事项:

  • 当主环境dev与其他环境有相同属性时,主环境属性生效;其他环境中有相同属性时,最后加载的环境属性生效
  • 后加载的环境属性会覆盖先加载的环境属性,主环境dev最后加载
  • Spring2.4版开始使用group属性替代include属性,降低了配置书写量
  • 使用group属性定义多种主环境与子环境的包含关系
spring:
  profiles:
    active: dev
    group:
      "dev": devDB,devMVC
      "pro": proDB,proMVC

注意事项:

  • 此时,加载顺序是按序加载

在这里插入图片描述

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

3.4、多环境开发控制

在这里插入图片描述

MavenSpringBoot多环境发生冲突的时候,应该让SpringBoot使用Maven里面的配置环境

  • MavenSpringBoot多环境兼容的步骤:

Maven中设置多环境属性

<!--设置多环境-->
<profiles>
    <profile>
        <id>env_dev</id>
        <properties>
            <profile.active>dev</profile.active>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>env_pro</id>
        <properties>
            <profile.active>pro</profile.active>
        </properties>
    </profile>
    <profile>
        <id>env_test</id>
        <properties>
            <profile.active>test</profile.active>
        </properties>
    </profile>
</profiles>

SpringBoot中引用Maven属性

spring:
  profiles:
    active: @profile.active@
    group:
      "dev": devDB,devMVC
      "pro": proDB,proMVC

③执行Maven打包指令,并在生成的boot打包文件.jar文件中查看对应信息

在这里插入图片描述

小结:

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值