SpringBoot 多环境的配置(附截图)

news2025/1/19 9:44:10

文章目录

    • 概要
    • 整体配置流程
    • 配置详细说明
    • 技术细节
    • 小结

概要

多环境开发

在实际项目开发中,一般需要针对不同的运行环境,如开发环境、测试环境、生产环境等,每个运行环境的数据库...等配置都不相同,每次发布测试、更新生产都需要手动修改相关系统配置。这种方式特别麻烦,费时费力,而且出错概率大。

Spring Boot为我们提供了更加简单方便的配置方案来解决多环境的配置问题。

将所有的配置都放在一个配置文件中,尤其是每一个配置应用场景都不一样,这显然不合理,于是就有了将一个配置文件拆分成多个配置文件的想法。拆分后,每个配置文件中就可以写需要环境的配置,主配置文件中要指明用哪一个配置文件就好了。

Spring Boot 的配置文件共有两种形式:.properties 文件和 .yml 文件。

不管采纳哪种形式,它们都能通过文件名的命名形式区分出不同的环境的配置,文件命名格式为:application-{profile}.properties 和 application-{profile}.yml。

如多环境通常配置:
properties配置形式:

application.properties         #项目主配置文件,所有公共配置;
application-dev.properties     #开发环境配置文件;
application-test.properties    #测试环境配置文件;
application-prod.properties    #生产环境配置文件。

yml配置形式:

application.yml         #项目主配置文件,所有公共配置;
application-dev.yml     #开发环境配置文件;
application-test.yml    #测试环境配置文件;
application-prod.yml    #生产环境配置文件。

整体配置流程

首先,我们新建三个环境配置文件,开发环境配置application-dev.yml、生产环境配置application-prod.yml、测试环境配置application-test.yml

SpringBoot默认加载的是application.yml,想要默认加载其他配置文件,例如生产环境,那么需要在application.yml中配置,这样加载的就是生产环境的配置了,项目打包时候打的也是application-prod.yml文件。

如果想要打包的时候用prod文件,IDE开发的时候用的是dev文件,可以在idea配置里设置;

配置详细说明

第一步:我们有三个配置文件,分别是开发环境配置application-dev.yml、生产环境配置application-prod.yml、测试环境配置application-test.yml;另外还有个SpringBoot默认的application.yml配置文件。

第二步:SpringBoot默认加载的是application.yml,想要默认加载其他配置文件,需要在application.yml中配置:指明使用的那个配置环境,如:prod

这样,服务启动的时候加载的就是生产环境配置了,打包打的也是application-prod.yml这个文件。本地开发的时候也是加载的prod文件。

第三步:如果我们希望项目打包的时候用的prod文件,但是IDE开发的时候用的是dev文件,那么可以进行这样操作:

打开启动配置

将active profiles 填写dev,这样idea启动的时候SpringBoot用的就是dev环境的配置。

技术细节

主配置文件application.yml

例如:

spring:
	profiles:
		active: prod		# 启动prod

在配置文件中,如果某些配置项所有环境都一样,可以将这些项写入到主配置中,只有哪些有区别的项才写入到环境配置文件中。

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

小结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1496273.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SpringBoot+Vue+ElementUI+Mybatis前后端分离管理系统超详细教程(一)

Vue.js 是一个流行的前端框架,用于构建用户界面和单页应用程序。Vue 2 是其第二个主要版本,它提供了数据绑定、组件化、虚拟DOM等核心特性。要搭建一个 Vue 2 的工程化项目,可以遵循以下步骤: 一、前端环境搭建 (一&a…

【小黑嵌入式系统第十八课】结课总结(二)——软件部分(系统架构调试测试运行系统软件设计)

上一课: 【小黑嵌入式系统第十七课】结课总结(一)——硬件部分(系统&总线&处理器&外设&通信) 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分…

CKA考试必备:解锁Pod封装多容器的高级技巧!

往期精彩文章 : 提升CKA考试胜算:一文带你全面了解RBAC权限控制!揭秘高效运维:如何用kubectl top命令实时监控K8s资源使用情况?CKA认证必备:掌握k8s网络策略的关键要点提高CKA认证成功率,CKA真题中的节点维…

Python 爬虫快速入门

1. 背景 最近在工作中有需要使用到爬虫的地方,需要根据 Gitlab Python 实现一套定时爬取数据的工具,所以借此机会,针对 Python 爬虫方面的知识进行了学习,也算 Python 爬虫入门了。 需要了解的知识点: Python 基础语…

three.js如何实现简易3D机房?(三)显示信息弹框/标签

接上一篇: three.js如何实现简易3D机房?(二)模型加载的过渡动画:http://t.csdnimg.cn/onbWY 目录 七、创建信息展示弹框 1.整体思路 (1)需求: (2)思路:…

猜猜:哪句古诗与古代女子妆容有关?2024.3.8蚂蚁庄园今日答案:金盆水里拨红泥

蚂蚁庄园是一款爱心公益游戏,用户可以通过喂养小鸡,产生鸡蛋,并通过捐赠鸡蛋参与公益项目。用户每日完成答题就可以领取鸡饲料,使用鸡饲料喂鸡之后,会可以获得鸡蛋,可以通过鸡蛋来进行爱心捐赠。其中&#…

Java 中创建线程多种方式介绍

在 Java 中,创建线程有多种方式,以下是最常见的四种: 1. **通过继承 Thread 类** 2. **通过实现 Runnable 接口** 3. **通过实现 Callable 接口** 4. **通过使用 Executor 框架** 每种方式都有其特点和适用场…

ElasticSearch之通过search after和scroll解决深度分页问题

写在前面 通过from,size来进行分页查询时,如下: 当from比较大时会有深度分页问题,问题产生的核心是coordinate node需要从每个分片中获取fromsize条数据,当from比较大,整体需要获取的数据量也会比较大&am…

【Java_JSON】如何从JSON数据中提取value值

如何从JSON数据中提取value值? 首先将JSON数据转成字符串 创建JSONObject 对象 通过kv键值对的特性 使用key值来获取value 值 并输出 结果:

Redis(十七)分布式锁

文章目录 面试题分布式锁锁的种类分布式锁需要具备的条件和刚需分布式锁 案例nginx分布式微服务部署,单机锁问题分布式锁注意事项lock/unlocklua脚本自研版的redis分布式锁搞定lua脚本 可重入锁可重入锁种类可重入锁hset实现,对比setnx(重要&…

Jmeter压测分配业务比例

在进行综合场景压测时,由于不同的请求,要求所占比例不同,如何实现呢? 不同的请求,服务器对其处理能力不同,有的处理快,有的处理慢。 真实模拟按比例进行并发: 在使用LR进行过类似…

在winform中如何嵌入第三方软件窗体✨

相关win32api的学习✨ SetParent [DllImport("user32.dll ", EntryPoint "SetParent")] private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent); //将外部窗体嵌入程序语法: HWND SetParent([in] H…

windows关闭copilot预览版

如果用户不想在windows系统当中启用Copilot,可以通过以下三种方式禁用。 第一种:隐藏Copilot 按钮 右键点击任务栏,取消勾选“显示 Copilot(预览版)按钮”,任务栏则不再显示,用户可以通过快捷键…

2024 年 AI 辅助研发趋势:从研发数字化到 AI + 开发工具 2.0,不止于 Copilot

在上一年里,已经有不少的企业在工具链上落地了生成式 AI,结合我们对于这些企业的分析,以及最近在国内的一些 “新技术” 趋势,诸如于鸿蒙原生应用的初步兴起。从这些案例与趋势中,我们也看到了一些新的可能方向。 结合…

【C++】蓝桥杯必备 算法竞赛常用STL万字总结

传送门⏬⏬⏬[方便查表] 🌟一、什么是STL?🌟二、为什么STL重要?✨1、原因✨2、STL的作用 🌟三、STL知识点总结✨0.使用说明书✨1、vector 【可变数组】✨2、pair [ x,y ]✨3、string【字符串】✨4、queue【队列】 和pr…

2024年【道路运输企业安全生产管理人员】复审考试及道路运输企业安全生产管理人员模拟考试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年道路运输企业安全生产管理人员复审考试为正在备考道路运输企业安全生产管理人员操作证的学员准备的理论考试专题,每个月更新的道路运输企业安全生产管理人员模拟考试题祝您顺利通过道路运输企业安全…

第三讲 汇编初步 课程随手记

一、寄存器 32位CPU通用寄存器如下图所示: 因为教材依照的是32位CPU寄存器,而我安装的是64位寄存器,所以找了一下64位的寄存器的资料 PS:一般来说,Intel处理器字节存储顺序为小端法存储,是指数据的高字节保…

JavaScript极速入门(1)

初识JavaScript JavaScript是什么 JavaScript(简称JS),是一个脚本语言,解释型或者即时编译型语言.虽然它是作为开发Web页面的脚本语言而著名,但是也应用到了很多非浏览器的环境中. 看似这门语言叫JavaScript,其实在最初发明之初,这门语言的名字其实是在蹭Java的热度,实际上和…

Vue2+ElementUI下拉、Select组件的封装

Vue2ElementUI下拉、Select组件的封装:引言 在 Vue2 项目中,ElementUI 的 el-select 组件是常用的下拉选择框组件。它提供了丰富的功能和样式,可以满足各种需求。但是,在实际开发中,我们经常会遇到一些重复性的需求&a…

男人的玩具系统wordpress外贸网站主题模板

垂钓用品wordpress外贸模板 鱼饵、鱼竿、支架、钓箱、渔线轮、鱼竿等垂钓用品wordpress外贸模板。 https://www.jianzhanpress.com/?p3973 身体清洁wordpress外贸网站模板 浴盐、防蚊液、足部护理、沐浴液、洗手液、泡澡用品wordpress外贸网站模板。 https://www.jianzhan…