IntelliJ IDEA下Spring Boot多环境配置教程

news2024/11/19 19:24:44

🌟🌌 欢迎来到知识与创意的殿堂 — 远见阁小民的世界!🚀
🌟🧭 在这里,我们一起探索技术的奥秘,一起在知识的海洋中遨游。
🌟🧭 在这里,每个错误都是成长的阶梯,每条建议都是前进的动力。
🌟🧭 在这里,我们一起成长,一起进步,让我们在知识的世界里畅游无阻,共同创造一个充满智慧和创新的明天。
🌟📚 点击关注,加入我们的技术探索之旅吧!❤️📖✨
✨博客主页:远见阁小民的主页
📕本文专栏:后端专栏
📕其他专栏:Linux专栏 AI专栏 Python专栏 其他专栏

1 前言

  在现代软件开发中,随着项目的不断扩大和团队协作的需要,将应用配置根据不同的环境(如开发、测试、生产等)进行分离和管理变得尤为重要。

  这种做法不仅有助于维护配置的清晰度和灵活性,还能确保在不同环境中应用的平稳运行。

  若依系统作为一个灵活且功能丰富的企业级开发平台,已经内置了application.yml和application-druid.yml两个基础配置文件,为我们提供了一个良好的起点。

  本文旨在演示如何为若依系统增加针对开发环境(dev)和生产环境(prod)的配置文件,从而实现配置管理的最佳实践。

  通过这种方式,我们可以轻松切换环境配置,确保在不同阶段的开发流程中,应用都能在最适合的配置下运行。

  这不仅提高了开发效率,也大大降低了因配置不当导致的运行时问题。

  接下来,让我们一起探索如何实现这一目标。

2 实操演示

在这里插入图片描述

2.1 开始配置

(1)将application-druid.yml 改名为 application-dev.yml

(2)基于application-dev.yml 复制新增一个application-prod.yml

完成后的效果如下图所示👇
在这里插入图片描述

2.2 启动环境测试效果

  在application.yml中这样配置(启动prod环境同理,这里就不再展示了)

配置示意图👇

在这里插入图片描述

启动示意图👇

在这里插入图片描述

  我们也可以这样修改配置,这种配置方法要比在application.yml中修改优先级要高,看最终运行效果我们可以发现,在application.yml中的dev配置并没有生效

修改配置👇

在这里插入图片描述
在这里插入图片描述

启动效果👇

在这里插入图片描述

3 Spring Boot的配置文件解析(加餐)

3.1 通用配置

  application.yml或application.properties是所有环境共享的基础配置,Spring Boot首先加载这个文件中的配置,它为应用程序提供了一组默认设置。

3.2 环境特定配置

  application-{profile}.yml

  {profile}代表应用程序运行的环境(例如dev、prod等),Spring Boot允许为不同的环境指定不同的配置文件,比如application-dev.yml针对开发环境,application-prod.yml针对生产环境。

  当激活一个特定的环境配置时,Spring Boot会加载对应的环境配置文件,并且这些配置会覆盖application.yml中的相应配置。

3.3 激活环境的方式

  可以通过多种方式激活特定的环境配置,例如通过设置spring.profiles.active属性,这个属性可以在application.yml中直接设置,如下图所示

在这里插入图片描述

也可以通过命令行参数(如–spring.profiles.active=prod)或环境变量来设置。

命令行参数来指定激活的配置文件👇

java -jar your-application.jar --spring.profiles.active=prod

通过设置环境变量来指定激活的配置文件👇

export SPRING_PROFILES_ACTIVE=prod
java -jar your-application.jar

3.4 配置文件加载顺序

  首先加载application.yml中的配置,然后是激活的环境特定配置文件(如application-dev.yml或application-prod.yml)。

  如果在环境特定的配置文件中定义了与application.yml相同的配置,则环境特定的配置将覆盖application.yml中的配置。


  在本文中,我们深入探讨了通过命令行参数或环境变量来指定激活的配置文件,以及如何确保在不同环境中正确加载所需的配置。

  这些知识对于我们管理和优化应用程序配置至关重要。

  了解配置文件加载顺序并正确配置环境,是确保应用程序在不同情况下正确运行的关键。

  通过本文的学习,我们能够更好地应对开发、测试和生产环境中的配置需求,确保应用程序的稳定性和可维护性。

  总的来说,通过学习本文,我们对Spring Boot中多环境配置的方法有了更深入的理解,为我们未来的项目开发和部署提供了重要的指导和参考。

  最后,感谢您阅读本文,希望这些知识能够对您在实践中的应用有所帮助。

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

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

相关文章

【蓝桥杯】包子凑数(DP)

一.题目描述 二.输入描述 三.输出描述 四.问题分析 几个两两互质的数,最大公约数是1,最小公倍数是他们的乘积。 两个互质的数a和b最小不能表示的数就是(a-1)(b-1)-1,即,两个互质的数…

Jrebel 使用备忘

背景 Java 开发时修改了代码如果手动中止进行然后重启的话,非常麻烦,所以需要一个热部署的插件,修改代码之后即时生效,无需重启。 之前一直用的 devtools,不过在一个新项目中,devtools 有点问题&#xff0…

用 Famous Face App 实现换脸:一秒变身你喜欢的明星

你是否曾经梦想过与你喜欢的明星同框? 现在,借助 Famous Face App 的强大技术,这个梦想可以轻松实现!Famous Face App 是一款基于人工智能的换脸应用,可以让你轻松将自己的脸换到各种视频和图片中。 使用 Famous Face…

公众号新媒体内容运营规划方案模板计划表

【干货资料持续更新,以防走丢】 公众号新媒体内容运营规划方案模板计划表 部分资料预览 资料部分是网络整理,仅供学习参考。 运营管理表格合集(完整资料包含以下内容)目录公众号新媒体运营计划书 一、目标: 搭建并…

在SAP HANA中使用OData(二)

通常有两种方式通过OData来暴露SAP HANA中的数据库对象,一是直接使用Database Object,比如前一篇和本篇文章介绍的例子,这种方式针对于数据已经存在于SAP HANA中,在Repository中没有对应的设计时对象(Design-time Object)&#xf…

【JavaScript】面试手撕防抖

引入 防抖可是前端面试时最频繁考察的知识点了,首先,我们先了解防抖的概念是什么。咳咳。👀 防抖: 首先它是常见的性能优化技术,主要用于处理频繁触发的浏览器事件,如窗口大小变化、滚动事件、输入框内容…

微服务-微服务Spring Security OAuth 2实战

1. Spring Authorization Server 是什么 Spring Authorization Server 是一个框架,它提供了 OAuth 2.1 和 OpenID Connect 1.0 规范以及其他相关规范的实现。它建立在 Spring Security 之上,为构建 OpenID Connect 1.0 身份提供者和 OAuth2 授权服务器产品提供了一个安全、轻…

【二】【SQL】去重表数据及分组聚合查询

去重表数据 表的准备工作 去除表中重复的数据,重复的数据只留一份。 mysql> create table duplicate_table (-> id int,-> name varchar(20)-> ); Query OK, 0 rows affected (0.03 sec)mysql> insert into duplicate_table values-> (100,aaa)…

用html实现一个简易的百度热榜

用html实现一个简易的百度热榜 相关代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document…

自主web服务器实现

目录 项目背景网络协议栈协议分层数据封装与分用 HTTP协议介绍HTTP协议简介认识URLURI、URL、URNHTTP的五大特点HTTP协议格式HTTP的请求方法HTTP的状态码HTTP常见的Header CGI机制介绍CGI机制概念CGI模式实现步骤CGI机制的流程 日志文件编写套接字相关代码编写HTTP服务器的主体…

【盲源分离】快速理解FastICA算法(附MATLAB绘图程序)

今天讲一个在信号分析领域较为常用的一个方法&#xff0c;即盲源分离算法中的FastICA。 我们先从一个经典的问题引入。 一、鸡尾酒舞会问题 想象一下&#xff0c;你身处一个熙熙攘攘的鸡尾酒舞会中。四周回荡着各种声音&#xff1a;笑声、交谈声、玻璃碰撞声&#xff0c;甚至…

swagger-ui.html报错404,解决办法

swagger-ui.html报错404,解决办法&#xff01;现在后端开发项目中&#xff0c;为了节省时间&#xff0c;使用swagger插件&#xff0c;可以方便的快捷生成接口文档。但是如果你在请求前端页面路径比如&#xff1a;http://127.0.0.1:7777/swagger-ui.html。找不到。那是因为你的配…

C语言-数据结构-顺序表

&#x1f308;个人主页: 会编辑的果子君 &#x1f4ab;个人格言:“成为自己未来的主人~” 目录 数据结构相关概念 顺序表 顺序表的概念和结构 线性表 顺序表分类 顺序表和数组的区别 顺序表分类 静态顺序表 动态顺序表 头插和尾插 尾插 数据结构相关概念 数据结构…

统计分析笔记3

文章目录 统计检验选择正确的统计检验统计检验是做什么的&#xff1f;何时进行统计检验选择参数化测试&#xff1a;回归、比较或相关性选择非参数检验 假设检验的假设条件skewness什么是零偏度right skewleft skew计算skewnesswhat to do if your data is skewed kurtosis怎么计…

《大模型时代-ChatGPT开启通用人工智能浪潮》精华摘抄

原书很长&#xff0c;有19.3w字&#xff0c;本文尝试浓缩一下其中的精华。 知识点 GPT相关 谷歌发布LaMDA、BERT和PaLM-E&#xff0c;PaLM 2 Facebook的母公司Meta推出LLaMA&#xff0c;并在博客上免费公开LLM&#xff1a;OPT-175B。 在GPT中&#xff0c;P代表经过预训练(…

C++:类与对象(1)

创作不易&#xff0c;谢谢支持&#xff01; 一、面向过程和面向对象 1、C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。 如我们要实现洗衣服&#xff1a; 2、而C是基于面向对象的&#xff0c;关注的是…

跨境电商与支付介绍

1、跨境电商定义和分类&#xff1b; 2、国际贸易清结算&#xff1b; 3、跨境支付&#xff1b; 1、跨境电商定义和分类 跨境电商业务简单说就是指不同国家地域的主体通过电子商务进行交易的一种业务模式。同传统的电商不同&#xff0c;交易双方属于不同的国家。因此&#xff0…

积累:使用QPushButton模拟开关按键

1. 效果图 2. 源码实现 2.1 设置 QPushButton 默认样式 QPushButton{border:none;border-image: url(:/image/close.png); }2.2 主要实现源码 void MainWindow::on_switch_btn_clicked() {if(m_switchisopen){ui->switch_btn->setStyleSheet("QPushButton{\border…

可观测性在威胁检测和取证日志分析中的作用

在网络中&#xff0c;威胁是指可能影响其平稳运行的恶意元素&#xff0c;因此&#xff0c;对于任何希望避免任何财政损失或生产力下降机会的组织来说&#xff0c;威胁检测都是必要的。为了先发制人地抵御来自不同来源的任何此类攻击&#xff0c;需要有效的威胁检测情报。 威胁…

单片机蓝桥杯实训(一)—— 初步了解赛点(省赛)资源包

本篇文章是我在准备单片机蓝桥杯赛事中的第一篇文章&#xff0c;旨在记录初步了解该赛事省赛的赛点资源包&#xff0c;以便更好的提前准备和训练相关的模块代码。文章末尾附有资源包的链接。 一、赛点资源包 赛点资源包所提供的资源如下&#xff1a; 二、赛点资源包解读 这里…