• SpringBoot多环境开发


    在这里插入图片描述

    🍁博客主页:👉不会压弯的小飞侠
    ✨欢迎关注:👉点赞👍收藏⭐留言✒
    ✨系列专栏:👉SpringBoot专栏(每日更新)
    ✨如果觉得博主的文章还不错的话,请三连支持一下博主。
    🔥欢迎大佬指正,一起学习!一起加油!

    在这里插入图片描述


    日常开发中至少有三个环境,分别是开发环境(dev),测试环境(test),生产环境(prod),不同的环境的各种配置都不相同,手动改配置麻烦且容易出错,如何管理不同环境的配置参数。



    🍁多环境开发(yaml版)

    🔥新建一个模板
    🔥编写yml文件

    # 应用名称
    spring:
      profiles:
        active: test
    ---
    #设置环境
    #生产环境
    spring:
      profiles: pro
    server:
      port: 80
    ---
    #开发环境
    spring:
      profiles: dev
    server:
      port: 81
    
    ---
    #测试环境
    spring:
      profiles:
        active:
          on-profie: test
    server:
      port: 82
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    🔥运行测试
    在这里插入图片描述

    ⭐⭐⭐注意:

    • active: test用来区分环境。
    • profile属性过时了,要用group格式
    spring:
      profiles:
        active:
          on-profie: test
    server:
      port: 82
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 启动指定环境
    spring:
      profiles:
        active: test
    
    • 1
    • 2
    • 3
    • 多环境开发需要设置若干种常用环境,例如开发、生产、测试环境
    • yaml格式中设置多环境使用—区分环境设置边界
    • 每种环境的区别在于加载的配置属性不同
    • 启用某种环境时需要指定启动时使用该环境

    🍁多环境开发(yaml版)多配置文件格式

    🔥主启动配置文件

    application.yml

    spring:
      profiles:
        active: test
    
    • 1
    • 2
    • 3

    🔥环境分类配置文件

    application-pro.yml

    server:
      port: 8082
    
    • 1
    • 2

    application-dev.yml

    server:
      port: 8081
    
    • 1
    • 2

    application-test.yml

    server:
      port: 8083
    
    • 1
    • 2

    测试:
    在这里插入图片描述
    ⭐⭐⭐注意:

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

    🍁多环境开发(properties版)多配置文件格式

    ⭐⭐⭐注意:格式与yaml一致。

    🔥主启动配置文件

    application.properties

    spring.profiles.active=pro
    
    • 1

    🔥环境分类配置文件

    application-pro.properties

    server.port=92
    
    • 1

    application-dev.properties

    server.port=91
    
    • 1

    application-test.properties

    server.port=93
    
    • 1

    测试:
    在这里插入图片描述

    🍁多环境开发独立配置

    • 根据功能对配置文件中的信息进行拆分,并制作成独立的配置文件,命名规则如下
      🔥application-dev.yml
    server:
      port: 80
    
    
    • 1
    • 2
    • 3

    🔥application-devDB.yml

    server:
      port: 81
    
    • 1
    • 2

    🔥application-devMVC.yml

    server:
      servlet:
        context-path: /ebank
      port: 82
    
    • 1
    • 2
    • 3
    • 4
    • 使用include属性在激活指定环境的情况下,同时对多个环境进行加载使其生效,多个环境间使用逗号分隔
      🔥application.yml
    spring:
      profiles:
        active: dev
        include: devDB,devMVC
    
    • 1
    • 2
    • 3
    • 4

    ⭐⭐⭐**注意:**当主环境dev与其他环境有相同属性时,主环境属性生效;其他环境中有相同属性时,最后加载的环境属性生效。

    🔥测试
    在这里插入图片描述

    🍁group属性替代include属性

    • 从SpringBoot2.4版开始使用group属性替代include属性,降低了配置书写量
    • 使用group属性定义多种主环境与子环境的包含关系

    🔥application.yml

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

    🔥测试
    在这里插入图片描述

    ⭐⭐⭐**注意:

    • 当主环境dev与其他环境有相同的属性时,主环境属性生效,其他环境中有相同的属性时最后加载的环境属性生效。
    • 多环境开发使用group属性配置文件分组,便于线上维护管理。

    🍁maven与Springboot多环境兼容

    🔥在Maven中设置多环境属性

    <!--    设置多环境-->
    	<profiles>
    		<profile>
    			<id>env_dev</id>
    			<properties>
    				<profile.active>dev</profile.active>
    			</properties>
    			<!--            默认启动dev-->
    			<!--<activation>
    				<activeByDefault>true</activeByDefault>
    			</activation>-->
    		</profile>
    
    		<profile>
    			<id>env_pro</id>
    			<properties>
    				<profile.active>pro</profile.active>
    			</properties>
    			<activation>
    				<activeByDefault>true</activeByDefault>
    			</activation>
    		</profile>
    	</profiles>
    	<build>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    🔥application.yml

    spring:
      profiles:
        active: @profile.active@
        group:
          "dev": devDB,devMVC
          "pro": proDB,proMVC
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 当maven与SpringBoot同时对多环境进行控制时,以Maven为主SpringBoot使用@…@占位符读取Maven对应的属性。

    🔥 clean项目重新Package
    打包详细步骤:点击直接查看
    🔥测试
    在这里插入图片描述

  • 相关阅读:
    告别繁琐流程,让你轻松成为电子画册制作达人!
    【数据结构与算法】之深入解析“点菜展示表”的求解思路与算法示例
    红胖子创业一年整总结:前二十年题记,萌芽初期,外包初期,创业初期,未来规划
    C#面试题 1
    C# 上位机Modbus Crc校验方法
    代理服务器拒绝连接
    【LeetCode刷题(数据结构)】:另一颗树的子树
    Linux命令之shred命令
    信息化与信息系统5
    06_JavaScript数组
  • 原文地址:https://blog.csdn.net/qq_43514330/article/details/125761222