springboot的多环境配置(测试,开发,生产)

2023-11-18

众所周知再开发过程中,从开发-测试-上线,至少也得有3个环境,然而每个环境的配置都不一样,例如数据库配置、Redis配置、等各种配置。如果在打包环节来一个一个进行修改配置的话,非常容易出错。

对于多环境配置,也有很多的构建工具,而他们的原理基本上也是通过配置多个不同环境的配置文件,进行区分打包。SpringBoot当然也支持。

springboot 提供多环境配置的机制,让开发者灵活根据需求而切换不同的配置环境

代碼地址:https://gitee.com/liyu2/blog.git,其中的mk-rabbitmq項目

 

第一步:添加各個環境的配置文件

  首先我们再SpringBoot的项目中的resources文件夹下创建三个以yml为后缀的文件

  application-dev.yml:开发环境

  application-test.yml:测试环境

  application-prod.yml:生产环境

 

第二步:選擇需要激活的配置文件

在application.yml文件中添加:spring.profiles.active=test,(表示开启测试环境)

如下:

server:
  port: 7005
spring:
  profiles:
    active: test

 

 

第三步:接下來,我們測試一下激活不同環境的配置是不是使用的不同配置文件,各個環境配置不同端口

然后我们分别将:开发环境 ,生产环境,测试环境的配置文件中的端口号改为:7005,7006,7007

 

第四步:測試

我們設置使用test環境配置

test環境的端口我們設置的是7007(如下圖)

啓動。如下圖,可以看到生效的配置是test環境,端口為7007

 

同理我們繼續重複上面得到步驟,設置不同環境,運行查看即可

 

總結

在Spring Boot中多环境配置文件名必须满足:

application-{profile}.properties的固定格式,

其中{profile}对应你的环境标识

例如:

application-dev.properties:开发环境

application-test.properties:测试环境

application-prod.properties:生产环境

application.properyies通过spring.profiles.active来具体激活一个或者多个配置文件,如果没有指定任何profile的配置文件的话,spring boot默认会启动application-default.properties。

 

而哪个配置文件运行:

spring.profiles.active=test

就会加载application-test.properties配置文件内容

 

在此一定要注意:

profile的配置文件可以按照application.properyies的放置位置一样,放于以下四个位置,

1.当前目录的 “/config”的子目录下

2.当前目录下

3.classpath根目录的“/config”包下

4.classpath的根目录下

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springboot的多环境配置(测试,开发,生产) 的相关文章

随机推荐

  • DPDK — 安装部署

    1 基础环境 1 1 硬件配置 1 2 操作系统要求 2 测试环境编译测试过程 2 1 升级GCC版本至GCC 7 3 0 步骤1 升级GCC依赖包设置 编译安装gmp cd home tar xvf home gmp 6 1 2 tar
  • python常用编译器和解释器_详解python编译器和解释器的区别

    高级语言不能直接被机器所理解执行 所以都需要一个翻译的阶段 解释型语言用到的是解释器 编译型语言用到的是编译器 编译型语言通常的执行过程是 源代码 预处理器 编译器 目标代码 链接器 可执行程序 某种意义上来说预处理事实上是一个附加的功能
  • m3u8是什么?

    引入 最近在视频网站中下载视频发现下载下来不是传统的mp4格式 而是m3u8格式 而且这个格式在播放器中还识别不了 我还以为是什么最新的加密格式 查阅资料才找到它是最近流行的流媒体传输格式 m3u8文件是用来干啥的 现在的视频网站采用的是流
  • Ethereum架构的分析

    架构 1 顶层架构设计上 区块链可以简单的分为三个层次 协议层 扩展层和应用层 其中 协议层又可以分为存储层和网络层 它们相互独立但又不可分割 以太坊最上层的是DApp 它是整个区块链的展示层 通过Web3 js和智能合约层进行交换 如以太
  • Android RecyclerView的StaggeredGridLayoutManager布局,实现交错排列的子元素分组

    先看实现的效果图 设计背景 现在的产品对设计的需求越来越多样化 如附录文章2是典型的联系人分组RecyclerView 子元素排列到一个相同的组 但是有些时候 UI要求把这些元素不是垂直方向的 而是像本文开头的图中所示样式排列 这就需要用S
  • 如何创建HttpServletRequest对象

    我们常用的就是在Controller层的接口入参时定义 这样我们就能直接用了 如下图 但是某些情况 我们需要传递这个request 到各种工具类中 传递这个request 相对要麻烦一些 我们可以不用传递 在需要用到request的地方 通
  • 预付费智能电表,做到一户一表、远程自动抄表、电费预充值、电表实时计量扣费、欠费自动跳闸。-安科瑞黄安南

    前言 国家从2018年开始对转供电加价开展规范清理以来 已经出来了一系列政策 不仅包括专门针对转供电问题的政策 18 20年间还在每次降电价政策中突出强调了转供电主体不得截留降价红利的要求 从具体内容看 各地政策都鼓励一户一表改造实现直供
  • React Hooks学习

    Hooks Hooks 是一种函数 该函数允许您从函数式组件 勾住 hook into React 状态和生命周期功能 有状态组件 就可以使用函数式组件来定义了 类组件和函数组件 类组件 import React Component fro
  • JuiceFS 在多云存储架构中的应用

    2020 年末 谷歌旗下 DeepMind 研发的 AI 程序 AlphaFold2 在国际蛋白质结构预测竞赛上取得惊人的准确度 使得 AI 预测蛋白质结构 这一领域受到了空前的关注 今天我们邀请到同领域企业 深势科技为大家分享其搭建基础平
  • 解决windows10右下脚工具栏图标显示不正常问题

    解决windows10右下加工具栏图标显示不正常问题 大多数问题的原因 在 Windows 10 系统中 为了加速图标的显示 当第一次对图标进行显示时 系统会对文件或程序的图标进行缓存 之后 当我们再次显示该图标时 系统会直接从缓存中读取数
  • LocalDateTime与Date相互转换

    LocalDateTime转Date LocalDateTime localDateTime LocalDateTime now Date date Date from localDateTime atZone ZoneId systemD
  • 使用ECS和mysql搭建mysql服务器

    一 首先得在阿里云等云主机上申请两台主机 二 现在连上去安装mysql 1 通过安装源将mysql下载下来 root iz2ze2llim71y07x3numlbz wget https dev mysql com get mysql57
  • CSDN竞赛第40期题解

    CSDN竞赛第40期题解 1 题目名称 小鱼的航程 改进版 有一只小鱼 它上午游泳150公里 下午游泳100公里 晚上和周末都休息 实行双休日 假设从周x 1 lt x lt 7 开始 算起 请问这样过了n天以后 小鱼一共累计游泳了多少公里
  • Stable Diffusion 系统教程

    2023年的2月13日 一款名叫ControlNet的插件横空出世 AI绘画变得更加可控 ControlNet直译过来很简单 就叫做控制网 开发者是一名华裔 毕业于苏州大学 目前在斯坦福做读博士一年级 大佬大佬 在controlNet之前
  • 数字逻辑练习题(十一)利用74LS161设计一个七进制计数器

    一 题目描述 已知74LS161为同步四位二进制加法计数器 其逻辑符号和功能表如下 请利用74LS161设计一个七进制计数器 应写出分析设计过程 二 问题解答 1 分析 采用同步置数法进行设计
  • mysql for centos_centos7下安装mysql及测试centos

    步骤1 下载并安装MySQL wget http dev mysql com get mysql community release el7 5 noarch rpm rpm ivh mysql community release el7
  • Android studio3.0对于百度地图api开发(8)——百度地图开发思考

    随着对于百度地图SDK的不断深入 对于百度地图的基本操作以及实现 每一块功能就像是一个个工具 他们功能不同 又能相互组合 这就为我们开发者提供了一个很好的平台 在这个平台 开发人员可以进行根据自己的需求进行组装 为了更好的交流 相互学了 我
  • 苹果cmsV10-Dplayer播放器插件整合前置广告、暂停广告

    简介 Dplayer播放器 整合前置广告 暂停广告3 0免费版 很多朋友在用maccms的时候会遇到采集的视频资源存在大量的广告 这款Dplayer播放器不经能去除视频里的垃圾广告 还能站长自己添加广告 播放器整合说明 1 整合的苹果cms
  • 程序员整体架构之开发架构

    开发架构 文章目录 开发架构 概述 前言 互联网发展特点 单体架构 面向服务架构 SOA 水平分层架构 微服务架构 水平拆分 垂直拆分 服务网格架构 中台架构 云原生架构 Serverless 架构 小结 公众号 概述 简述了互联网业务发展
  • springboot的多环境配置(测试,开发,生产)

    众所周知再开发过程中 从开发 测试 上线 至少也得有3个环境 然而每个环境的配置都不一样 例如数据库配置 Redis配置 等各种配置 如果在打包环节来一个一个进行修改配置的话 非常容易出错 对于多环境配置 也有很多的构建工具 而他们的原理基