当前位置: 首页 > news >正文

关于springboot多环境设设置说明

前言:网络上有很多多环境设置过程,尤其springboot2.4前后存在差异。,经过多方评估

config.activate.on-profile和profiles.activate两种激活类型,目前介绍profiles.activate激活方式。

config.activate.on-profile有点不伦不类,个人观点

1..springboot版本信息

<!-- SpringBoot的依赖配置-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.5.14</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

2.基于pom配置profiles

<profiles>
    <profile>
        <id>test</id>
        <properties>
            <!-- 环境标识,需要与配置文件的名称相对应 -->
            <profiles.active>test</profiles.active>
            <logging.level>debug</logging.level>
        </properties>
    </profile>
    <profile>
        <id>dev</id>
        <properties>
            <!-- 环境标识,需要与配置文件的名称相对应 -->
            <profiles.active>dev</profiles.active>
            <logging.level>debug</logging.level>
        </properties>
        <activation>
            <!-- 默认环境 -->
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <profiles.active>prod</profiles.active>
            <logging.level>warn</logging.level>
        </properties>
    </profile>
</profiles>
配置完成如下所示: 

3.配置application多环境(过于简单,不详述)复制粘贴

 4.动态配置profiles

4.1application.yml中配置动态获取从pom

spring:
  # 资源信息
  messages:
    # 国际化资源文件路径
    basename: i18n/messages
  profiles:
    active: @profiles.active@

注意:这里有个新手配置特别容易错的选项,不设置resource,会导致application.yml中的@@找不到pom文件中的配置,报错

<build>

<resources>
    <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
    </resource>
</resources>

</bulid>

5.测试

6.结算语

上述设计流程适合真实项目配置,本人亲测版本发布,包括不限于docker,jar等都很适合。

本人测试项目为ruoyi-vueRuoYi-Vue: 🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本

 本人目前重业务处理,此技术文档只为保留研发力,尽个人绵薄之力。

相关文章:

  • PeLK: 大卷积核强势回归,高达101 × 101,提出了外围卷积
  • 架构师系列- 消息中间件(12)-kafka基础
  • OSPF的协议特性
  • DAC音频解码芯片DP7398立体声数模转换芯片
  • LORA详解
  • ubuntu 复制文件路径
  • 七、ChatGPT为什么会被热炒?
  • 数据结构·顺序表实现通讯录
  • GO学习记录
  • 用Java创建的Spring Boot项目中,如何传递JSON对象呢?
  • WebAssembly 是啥东西
  • lv21 QT对话框3
  • 一幅长文细学CSS3
  • P2-Net:用于2D像素与3D点匹配的局部特征的联合描述符和检测器(ICCV 2021)
  • 电磁兼容(EMC)基础(二)
  • 面向终客户和设备制造商的Ethernet-APL
  • React.lazy与Suspence实现延迟加载
  • React 中 memo useMemo useCallback 到底该怎么用
  • git命令
  • Vue的思维导图
  • 【Linux】4.0进程控制
  • 【Python应用】自制截图取词小工具-- 解锁文字识别新姿势
  • MYSQL学习笔记(DDL[数据定义]、DML[数据操作]、DQL[数据查询])
  • SpringCloud学习笔记
  • FFT 快速傅里叶变换 NTT 快速数论变换
  • 王传福赚嗨了!比亚迪单季利润超50亿 还大量出口到欧洲
  • 带你趣学算法
  • 设计模式(四)—— 装饰者模式
  • [架构之路-48]:目标系统 - 系统软件 - Linux下的网络通信-4-快速数据平面开发套件DPDK-工作原理
  • 创意电子学00课:需要准备的材料汇总
  • 什么是轨到轨?这种运放和普通运放比有什么特点和优点?
  • 面试官:小伙子,说说C/C++是如何进行内存管理的?我:……