• 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
    
    • 1
    • 2
    • 3
    • 4

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

    server:
      port: 8080
    
    • 1
    • 2

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

    server:
      port: 8081
    
    • 1
    • 2

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

    server:
      port: 8082
    
    • 1
    • 2

    小结:

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

    3.2、多环境开发(properties版)

    ① 主启动配置文件application.properties

    spring.profiles.active=dev
    
    • 1

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

    server.port=9080
    
    • 1

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

    server.port=9081
    
    • 1

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

    server.port=9082
    
    • 1

    注意事项:

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

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

    1、书写技巧(一)

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

    2、书写技巧(二)

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

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

    spring:
      profiles:
        active: dev
        include: devMVC,devDB
    
    • 1
    • 2
    • 3
    • 4

    注意事项:

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

    注意事项:

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

    在这里插入图片描述

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

    3.4、多环境开发控制

    在这里插入图片描述

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

    • MavenSpringBoot多环境兼容的步骤:

    Maven中设置多环境属性

    
    <profiles>
        <profile>
            <id>env_devid>
            <properties>
                <profile.active>devprofile.active>
            properties>
            <activation>
                <activeByDefault>trueactiveByDefault>
            activation>
        profile>
        <profile>
            <id>env_proid>
            <properties>
                <profile.active>proprofile.active>
            properties>
        profile>
        <profile>
            <id>env_testid>
            <properties>
                <profile.active>testprofile.active>
            properties>
        profile>
    profiles>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    SpringBoot中引用Maven属性

    spring:
      profiles:
        active: @profile.active@
        group:
          "dev": devDB,devMVC
          "pro": proDB,proMVC
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

    在这里插入图片描述

    小结:

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

  • 相关阅读:
    利用综合微生物指数评估富营养化危险沿海湿地生态状况
    远程控制与遥控器控制耦合
    洛谷题解 P2719 搞笑世界杯
    python3 ConfigParser配置文件解析(config.ini).ini文件节点字段命名规范
    说说Elasticsearch Segment合并
    智慧燃气系统建设方案:建设目标、建设方案、技术特征、应用价值
    编程新手?跟着这个教程,用Python画出小猪佩奇
    06 数组
    指针函数、函数指针、指针函数数组
    最全!2024百度Spring Zuul面试题大全,详解每个角落,面试必备宝典!收藏版!
  • 原文地址:https://blog.csdn.net/kuaixiao0217/article/details/126262262