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

SpringBoot后端开发常用工具详细介绍——application多环境配置与切换

文章目录

      • 引言介绍
      • `application.yml`(主配置文件)
      • `application-dev.yml`(开发环境配置)
      • `application-test.yml`(测试环境配置)
      • `application-prod.yml`(生产环境配置)
      • 激活配置文件
      • 参考内容

引言介绍

application.yml 是 Spring Boot 中用于配置应用程序的主配置文件,它允许你配置应用程序的各种属性,如服务器端口、数据库连接、缓存策略等。这个文件支持不同环境的配置,我们可以为开发环境、测试环境和生产环境创建不同的配置文件。

  • application-dev.yml:这是为开发环境准备的配置文件,通常包含开发环境中特有的配置,如数据库连接、服务器端口等。开发环境配置可以比较随意,为了开发调试方便,一般打开全部错误报告。
  • application-test.yml:这是为测试环境准备的配置文件,测试环境一般是克隆一份生产环境的配置,用于进行全面的测试,看看所实现的功能有没有bug。
  • application-prod.yml:这是为生产环境准备的配置文件,生产环境是正式提供对外服务的,一般会关掉错误报告,打开错误日志。生产环境的配置需要更加谨慎和稳定。

在真实的工作中,你可以通过在 application.yml 文件中使用 spring.profiles.active 来激活不同的配置文件。例如,设置 spring.profiles.active: dev 会激活 application-dev.yml 配置文件。这样,项目最终会采用 application.yml 和激活的环境配置的组合。

操作方式通常是在项目的资源目录 src/main/resources 下创建这些配置文件。在部署或启动应用程序时,可以通过命令行参数或者环境变量来指定当前激活的环境配置文件。例如,在启动应用程序时,可以使用以下命令来激活开发环境配置:

shell

java -jar yourapp.jar --spring.profiles.active=dev

或者,在 application.yml 文件中直接指定激活的配置文件:

spring:profiles:active: dev

这样,Spring Boot 会加载 application.yml 中的公共配置,并覆盖或添加 application-dev.yml 中针对开发环境的特定配置。同样的,你可以为测试和生产环境设置 testprod 作为激活的配置文件。

application.yml(主配置文件)

spring:application:name: my-applicationdatasource:driver-class-name: com.mysql.cj.jdbc.Driver# 数据源配置,这里使用占位符,具体值由环境配置文件提供url: ${DB_URL}username: ${DB_USER}password: ${DB_PASSWORD}server:port: ${SERVER_PORT}# 通用配置
logging:level:root: INFO

application-dev.yml(开发环境配置)

spring:profiles: devdatasource:url: jdbc:mysql://localhost:3306/mydatabase_devusername: dev_userpassword: dev_passwordserver:port: 8080logging:level:root: DEBUG

application-test.yml(测试环境配置)

spring:profiles: testdatasource:url: jdbc:mysql://test-server:3306/mydatabase_testusername: test_userpassword: test_passwordserver:port: 8888logging:level:root: WARN

application-prod.yml(生产环境配置)

yaml

spring:profiles: proddatasource:url: jdbc:mysql://prod-server:3306/mydatabase_produsername: prod_userpassword: prod_passwordserver:port: 80logging:level:root: ERROR

在这些配置文件中,我们使用了占位符(如 ${DB_URL}, ${DB_USER}, ${SERVER_PORT})来表示那些可能因环境而异的配置项。在环境特定的配置文件中,我们提供了具体的值。

激活配置文件

要激活特定的环境配置,可以在启动应用程序时通过命令行参数指定,例如:

java -jar yourapp.jar --spring.profiles.active=dev

或者在 application.yml 文件中指定默认激活的配置文件:

spring:profiles:active: dev

这样,Spring Boot 会加载 application.yml 中的通用配置,并覆盖或添加 application-dev.yml 中的开发环境特定配置。对于测试和生产环境,操作相同,只需将 dev 替换为 testprod

参考内容

Spring Boot 多环境如何配置-CSDN博客

相关文章:

SpringBoot后端开发常用工具详细介绍——application多环境配置与切换

文章目录 引言介绍application.yml(主配置文件)application-dev.yml(开发环境配置)application-test.yml(测试环境配置)application-prod.yml(生产环境配置)激活配置文件参考内容 引…...

php反序列化漏洞典型例题

1.靶场环境 ctfhub-技能树-pklovecloud 引用题目&#xff1a; 2021-第五空间智能安全大赛-Web-pklovecloud 2.过程 2.1源代码 启动靶场环境&#xff0c;访问靶场环境&#xff0c;显示源码&#xff1a;直接贴在下面&#xff1a; <?php include flag.php; class pks…...

浅析Android View绘制过程中的Surface

前言 在《浅析Android中View的测量布局流程》中我们对VSYNC信号到达App进程之后开启的View布局过程进行了分析&#xff0c;经过对整个App界面的View树进行遍历完成了测量和布局&#xff0c;确定了View的大小以及在屏幕中所处的位置。但是&#xff0c;如果想让用户在屏幕上看到…...

基于卷积神经网络的大豆种子缺陷识别系统,resnet50,mobilenet模型【pytorch框架+python源码】

更多目标检测和图像分类识别项目可看我主页其他文章 功能演示&#xff1a; 大豆种子缺陷识别系统&#xff0c;卷积神经网络&#xff0c;resnet50&#xff0c;mobilenet【pytorch框架&#xff0c;python源码】_哔哩哔哩_bilibili &#xff08;一&#xff09;简介 基于卷积神…...

HarmonyOS项目开发一多简介

目录 一、布局能力概述 二、自适应布局 三、响应式布局 四、典型布局场景 一、布局能力概述 布局决定页面元素排布及显示&#xff1a;在页面设计及开发中&#xff0c;布局能力至关重要&#xff0c;主要通过组件结构来确定使用何种布局。 自适应布局与响应式布局&#xff1…...

C++基础三

构造函数 构造函数(初始化类成员变量)&#xff1a; 1、属于类的成员函数之一 2、构造函数没有返回类型 3、构造函数的函数名必须与类名相同 4、构造函数不允许手动调用(不能通过类对象调用) 5、构造函数在类对象创建时会被自动调用 6、如果没有显示声…...

利用ChatGPT完成2024年MathorCup大数据挑战赛-赛道A初赛:台风预测与分析

利用ChatGPT完成2024年MathorCup大数据挑战赛-赛道A初赛&#xff1a;台风预测与分析 引言 在2024年MathorCup大数据挑战赛中&#xff0c;赛道A聚焦于气象数据分析&#xff0c;特别是台风的生成、路径预测、和降水风速特性等内容。本次比赛的任务主要是建立一个分类评价模型&…...

Linux系统操作篇 one -文件指令及文件知识铺垫

Linux操作系统入门-系统篇 前言 Linux操作系统与Windows和MacOS这些系统不同&#xff0c;Linux是黑屏的操作系统&#xff0c;操作方式使用的是指令和代码行来进行&#xff0c;因此相对于Windows和MacOS这些带有图形化界面的系统&#xff0c;Linux的入门门槛和上手程度要更高&…...

隨筆20241028 ISR 的收缩与扩展及其机制解析

在 Kafka 中&#xff0c;ISR&#xff08;In-Sync Replicas&#xff09; 是一组副本&#xff0c;它们与 Leader 保持同步&#xff0c;确保数据一致性。然而&#xff0c;ISR 的大小会因多种因素而变化&#xff0c;包括收缩和扩展。以下是 ISR 收缩与扩展的详细解释及其背后的机制…...

linux-字符串相关命令

1、cut 提取文件每一行中的内容 下面是一些常用的 cut 命令选项的说明&#xff1a; -c, --characters列表&#xff1a;提取指定字符位置的数据。-d, --delimiter分界符&#xff1a;指定字段的分隔符&#xff0c;默认为制表符。-f, --fieldsLIST&#xff1a;提取指定字段的数据…...

ES6 函数的扩展

ES6 之前&#xff0c;不能直接为函数的参数指定默认值&#xff0c;只能采用变通的方法 ES6 允许为函数的参数设置默认值&#xff0c;即直接写在参数定义的后面 参数变量是默认声明的&#xff0c;所以不能用 let 或 const 再次声明 使用参数默认值时&#xff0c;函数不能有同名参…...

Mac 查看占用特定端口、终止占用端口的进程

在 macOS 上&#xff0c;可以使用以下命令来查看占用特定端口&#xff08;例如 8080&#xff09;的进程&#xff1a; lsof -i :8080命令说明 lsof&#xff1a;列出打开的文件和网络连接信息。-i :8080&#xff1a;筛选出正在监听 8080 端口的进程。 输出结果结构 执行上述命…...

C#入坑JAVA MyBatis入门 CURD 批量 联表分页查询

本文&#xff0c;分享 MyBatis 各种常用操作&#xff0c;不限于链表查询、分页查询等等。 1. 分页查询 在 下文的 的「3.4 selectPage」小节&#xff0c;我们使用 MyBatis Plus 实现了分页查询。除了这种方式&#xff0c;我们也可以使用 XML 实现分页查询。 这里&#xff0c…...

RabbitMQ 安装(Windows版本)和使用

安装 安装包获取 可以自己找资源&#xff0c;我这里也有百度云的资源&#xff0c;如果没失效的话可以直接用。 通过百度网盘分享的文件&#xff1a;RabbitMQ 链接&#xff1a;https://pan.baidu.com/s/1rzcdeTIYQ4BqzHLDSwCgyw?pwdfj79 提取码&#xff1a;fj79 安装教程…...

Apache paimon表管理

表管理 2.9.4.1 管理快照 1)快照过期 Paimon Writer每次提交都会生成一个或两个快照。每个快照可能会添加一些新的数据文件或将一些旧的数据文件标记为已删除。然而,标记的数据文件并没有真正被删除,因为Paimon还支持时间旅行到更早的快照。它们仅在快照过期时被删除。 …...

java 第19天

一.Lambda表达式 前提是&#xff1a;参数是函数式接口才可以书写Lambda表达式 函数式接口条件&#xff1a; 1.接口 2.只有一个抽象方法 lambda表达式又称为匿名函数&#xff0c;允许匿名函数以参数的形式传入方法&#xff0c;简化代码 lambda表达式分为两部分()->{} …...

什么是服务器?服务器与客户端的关系?本地方访问不了网址与服务器访问不了是什么意思?有何区别

服务器是一种高性能的计算机&#xff0c;它通过网络为其他计算机&#xff08;称为客户端&#xff09;提供服务。这些服务可以包括文件存储、打印服务、数据库服务或运行应用程序等。服务器通常具有强大的处理器、大量的内存和大容量的存储空间&#xff0c;以便能够处理多个客户…...

Spring(1)—Spring 框架:Java 开发者的春天

一、关于Spring 1.1 简介 Spring 框架是一个功能强大的开源框架&#xff0c;主要用于简化 Java 企业级应用的开发&#xff0c;由被称为“Spring 之父”的 Rod Johnson 于 2002 年提出并创立&#xff0c;并由Pivotal团队维护。它提供了全面的基础设施支持&#xff0c;使开发者…...

MT1401-MT1410 码题集 (c 语言详解)

目录 MT1401归并排序 MT1402堆排序 MT1403后3位排序 MT1404小大大小排序 MT1405小大大小排序II MT1406数字重排 MT1407插入 MT1408插入 MT1409旋转数组 MT1410逆时针旋转数组 MT1401归并排序 c 语言实现代码 #include <stdio.h>// merge two subarrays void merge(int a…...

React基础语法

1.React介绍 React由Meta公司开发&#xff0c;是一个用于构建Web和原生交互界面的库 1.1 React优势 相较于传统基于DOM开发的优势 1.组件化的开发方式 2.不错的性能 相较于其他前端框架的优势 1.丰富的生态 2.跨平台支持 1.2React的时长情况 全球最流行&#xff0c;大厂…...

《Kadane‘s Algorithm专题:最大和连续子数组》

&#x1f680; 博主介绍&#xff1a;大家好&#xff0c;我是无休居士&#xff01;一枚任职于一线Top3互联网大厂的Java开发工程师&#xff01; &#x1f680; &#x1f31f; 在这里&#xff0c;你将找到通往Java技术大门的钥匙。作为一个爱敲代码技术人&#xff0c;我不仅热衷…...

Vue基础(5)

ref属性 在 Vue2 中&#xff0c;ref是一个特殊的属性&#xff0c;用于在模板中获取对某个 DOM 元素或子组件的引用。通过 ref&#xff0c;我们可以在 JavaScript 代码中直接访问该 DOM 元素或组件实例。 示例: <template><div><input ref"inputField&quo…...

面对复杂的软件需求:5大关键策略!

面对软件需求来源和场景的复杂性&#xff0c;有效地管理和处理需求资料是确保项目成功的关键&#xff0c;能够提高需求理解的准确性&#xff0c;增强团队协作和沟通&#xff0c;降低项目风险&#xff0c;提高开发效率。反之&#xff0c;项目可能面临需求理解不准确、团队沟通不…...

使用Git进行版本控制的最佳实践

文章目录 Git简介基本概念仓库&#xff08;Repository&#xff09;提交&#xff08;Commit&#xff09;分支&#xff08;Branching&#xff09; 常用命令初始化仓库添加文件提交修改查看状态克隆仓库分支操作合并分支推送更改 最佳实践使用有意义的提交信息定期推送至远程仓库使…...

【入门1】顺序结构 - B2025 输出字符菱形

题目描述 用 * 构造一个对角线长 55 个字符&#xff0c;倾斜放置的菱形。 输入格式 没有输入要求。 输出格式 如样例所示。用 * 构成的菱形。 输入输出样例 输入 #1 输出 #1**** ********* <C> : #include<stdio.h>int main() {printf(" *\n ***\n**…...

C#DLL热加载|动态替换

我有一个项目 开始取数据和结束数据部分是一样的&#xff0c;但中间处理数据是根据客户需求来转换的 又要求增加一个客户数据转换 主程序是不能停下来的 所以这个项目转数据转换部分做成插件式 每个客户的数据转换都是一个项目 都是一个DLL 主程序里面定义好接口类或者抽象…...

数据库三大范式

目录 第一范式(1NF) 第二范式(2NF) 第三范式(3NF) Oracle三大范式是数据库设计中的规范化过程,旨在减少数据冗余、提高数据一致性和数据库性能。这三大范式包括第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。 第一范式(1NF) 数据库表的每一列都是不可分割…...

【linux】fdisk磁盘分区管理

介绍 fdisk是一个磁盘分区管理工具&#xff0c;可以用来创建、删除、修改和查看磁盘分区。 fdisk一般都是交互式使用&#xff0c;基础语法: fdisk /dev/sdd。进入交互窗口后&#xff0c;有一些选项&#xff0c;需要了解下&#xff1a; 选项含义n创建新分区p查看磁盘的分区情…...

asp.net core 入口 验证token,但有的接口要跳过验证

asp.net core 入口 验证token,但有的接口要跳过验证 在ASP.NET Core中&#xff0c;你可以使用中间件来验证token&#xff0c;并为特定的接口创建一个属性来标记是否跳过验证。以下是一个简化的例子&#xff1a; 创建一个自定义属性来标记是否跳过验证&#xff1a; public clas…...

[mysql]聚合函数GROUP BY和HAVING的使用和sql查询语句的底层执行逻辑

#GROUP BY的使用 还是先从需求出发,我们现在想求员工表里各个部门的平均工资,最高工资 SELECT department_id,AVG(salary) FROM employees GROUP BY department_id 我们就会知道它会把一样的id分组,没有部门的就会分为一组,我们也可以用其他字段来分组,我们想查询不同jb_id…...

服装品牌建设网站的目的/丽水百度seo

灯光的亮度控制需要一个滑动条&#xff0c;先借用lamp源码中Bar&#xff1a; var Bar function (opt) {var defaults {$id: "", // 进度条dom节点idmin: 1, // 刻度最小值stepCount: 5, // 刻度步数step: 1, // 刻度步长$alpha: "",//显示亮度的idtouchE…...

路得威网站谁做的/西安seo培训

导读假如在你正看着屏幕上的某些重要的事情时&#xff0c;你不想让你的小猫或者小狗在你的键盘上行走&#xff0c;或者让你的孩子在键盘上瞎搞一气&#xff0c;那我建议你试试 xtrlock 这个工具。假如在你正看着屏幕上的某些重要的事情时&#xff0c;你不想让你的小猫或者小狗在…...

网站上papi酱做的音频/搜狗站长平台打不开

Web基本笔记~12.引用数据类型 上一期 引用类型的值&#xff08;对象&#xff09;是引用类型的一个实例。在JavaScript中&#xff0c;引用类型是一种数据结构&#xff0c;用于将数据和功能组织在一起。它也常被称为类&#xff0c;但这种称呼并不妥当。尽管JavaScript从技术上讲…...

wordpress七牛云镜像/seo网站推广免费

在初步掌握微博应用开发的流程后&#xff0c;建议通读一遍weibooauth.php中的代码&#xff0c;优先读class WeiboClient中公共方法的定义。这些方法都是直接操作微博和用户的&#xff0c;清楚有哪些方法&#xff0c;其调用接口、默认参数等。本文提供了class WeiboClient中公共…...

动漫游戏制作专业是本科专业吗/seo优化或网站编辑

一、作业描述  编写Java程序&#xff0c;模拟简单的计算器。 定义名为Number的类&#xff0c;其中有两个整型数据成员n1和n2&#xff0c;应声明为私有。编写构造方法&#xff0c;赋予n1和n2初始值&#xff0c;再为该类定义加&#xff08;addition&#xff09;、减&#xff08;…...

和网站建设签合同/公司全网推广

ansible报错整理https://blog.csdn.net/qq_33324608/article/details/54407108 在某个目录下查看git配置。转载于:https://blog.51cto.com/jack88/2409510...