springboot利用spring.profiles.active=@spring.active@不同环境下灵活切换配置文件

maven: 使用spring.profiles.active实现多环境配置 在项目开发的过程中会用到多个环境比如:本地环境(开发自测)、开发环境(环境部署自测)、生产环境等,由于不同的环境需要不同的配置信息,为了便于开发使用,通常需要使用profiles进行多环境配置。pom文件中添加如下配置。 阅读详情
AI摘要

本文详细介绍如何在SpringBoot项目中使用spring.profiles.active动态加载不同环境的配置文件,包括配置文件结构、pom文件配置及具体应用示例。

我们开发当中一般会有多种运行环境,在各种运行环境中配置文件多少有些不同。我们可以利用spring.profiles.active来实现动态加载配置文件。

实现很简单,以springboot+ maven项目为例,走起:

一、创建配置文件

配置文件结构:这里建三个配置文件,application.yml作为主配置文件配置所有共同的配置;-dev和-local分别配置两种环境下的不同配置内容,如数据库地址等。

 application.yml中添加spring.profiles.active配置来动态加载活跃的配置文件:

spring:
  profiles:
    active: "@spring.active@"

@spring.active@有些情况下不需要加双引号,但是如果抱以下错误就可以通过加双引号来解决。

错误信息:

found character ‘@’ that cannot start any token. (Do not use @ for indentation)
....

二、pom文件添加profiles配置

<profiles>
	<profile>
		<id>local</id>
		<properties>
			<spring.active>local</spring.active>
		</properties>
		<activation>
			<activeByDefault>true</activeByDefault>
		</activation>
	</profile>
	<profile>
		<id>dev</id>
		<properties>
			<spring.active>dev</spring.active>
		</properties>
	</profile>
</profiles>

以上配置声明有两种配置文件、分别为dev和local。且默认使用local(通过<activeByDefault>true</activeByDefault>设置的)。

这样配置好的项目在maven中就多了一个配置项:

 

local有灰色对勾√,说明默认使用local。

三、具体应用

1、使用mvn命令打包项目打包时。

  •        mvn clean package 清理并打包命令,默认是使用local配置文件。
  •        mvn clean package -P dev 清理并指定配置文件打包命令,使用dev配置文件。

2、手动打包,通过勾选profiles选项切换配置文件

      maven profiles中勾选dev,然后打包,则使用dev配置文件。

 

 

3、本地启动springboot时,以idea为例。

  • 如步骤2中勾选所需激活的配置文件后,启动application中的main方法则对应加载勾选中的配置文件。
  • 还可以在idea中配置指定加载配置文件,指定后勾选功能失效。方法如下:

 

使用很简单。相信也还有更多的花样可以玩。暂且这些。

 

四、测试类中对profile的配置

测试类上加入以下配置即可制定配置文件,替换dev即可

@ActiveProfiles("dev")

 

 

 

Spring Boot开发编译后读取不到@spring.profiles.active@的问题 在IDEA中,确保你已经正确设置了Run/Debug Configuration,包括正确的profile参数。如果问题仍然存在,可以检查IDEA的日志输出,查找是否有关于profile激活失败的错误信息,并根据错误信息进一步排查问题。: 有时候,IDEA的缓存可能会导致配置读取不正确。: 确保Spring Boot的启动类上没有硬编码的profile设置,这可能会覆盖外部配置。这样配置后,Maven会根据激活的profile替换。中已经定义了相应的profile,并且设置了。占位符,并且该文件位于。 阅读详情

相关推荐

图文细描:Maven Profiles 与 Spring Profiles 多环境配置

目录前言Spring Profiles使用Maven Profiels使用Spring Profiles和 Maven Profiles结合配置来打包注意 前言 在项目开发过程中,我们离不开多环境的配置。有的同学还是分不清Maven Profiles 和 Spring Profiles的区别。 它们两者即可以独立配置, 也可以结合使用。 Maven Profiles主要用来管理maven项目不同环境的打包配置。 Spring Profiles主要用来管理spring项目不同环境的启动配置。 Spring

sendear的博客 3842

springboot @spring.active@启动报错

主要原因是启动时@spring.active@值未解析出来。 起初主要是想做多环境配置,pom如下: <profiles> <profile> <id>dev</id> <properties> <spring.active>dev</spring.active> </properties&gt

Jovi521的博客 7971

Spring Boot多环境配置:实现不同环境的灵活切换(附配置示例)

摘要:Spring Boot支持通过多环境配置实现开发、测试和生产环境的灵活切换。核心原理基于application-{profile}.properties配置文件和spring.profiles.active属性,可通过主配置文件、命令行参数或系统环境变量指定运行环境。不同环境可配置独立的数据库连接、日志级别等参数,Spring Boot会按优先级处理配置冲突。掌握多环境配置能有效提升项目部署效率,是Spring Boot高级应用的重要特性。

fykam的博客 1195

@spring.active@无法读取

问题 java.lang.IllegalStateException: Failed to load property source from location 'classpath:/bootstrap.yml' at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:538) at org.sprin...

周六放风筝的专栏 2570

SpringBoot多环境配置实战:spring.profiles.active原理与应用

在软件开发中,多环境配置管理是保障应用在不同部署场景下稳定运行的基础技术。其核心原理在于通过环境标识动态加载对应的配置资源,实现代码与环境的解耦。这一机制的技术价值在于提升开发效率、确保部署可靠性,并支持持续集成与交付流程。在实际应用场景中,它广泛用于数据库连接、日志级别、服务端点等环境相关参数的隔离。本文聚焦SpringBoot框架中的Profile机制,深入解析spring.profiles.active这一核心配置项的工作方式与高级用法,涵盖从基础配置到云原生集成的完整实践路径,帮助开发者构建更健壮的

weixin_29895109的博客 338

webpack性能优化-optimization.splitChunks.chunks中的“all“、“async“和“initial“

最初,chunks(以及内部导入的模块)是通过内部 webpack 图谱中的父子关系关联的。CommonsChunkPlugin 曾被用来避免他们之间的重复依赖,但是不可能再做进一步的优化。 ——摘自 webpack 从 webpack v4 开始,移除了 CommonsChunkPlugin,取而代之的是 optimization.splitChunks。 而关于 optimization.splitChunks 中的chunks,webpack 官方文档却没有很好的进行举例解释,只说明了 async.

程序员秋风的博客 3137

SPRINGBOOT利用SPRING.PROFILES.ACTIVE=@SPRING.ACTIVE@不同环境下灵活切换配置文件

我们开发当中一般会有多种运行环境,在各种运行环境中配置文件多少有些不同。我们可以利用spring.profiles.active来实现动态加载配置文件。 实现很简单,以springboot+ maven项目为例,走起: 一、创建配置文件 配置文件结构:这里建三个配置文件,application.yml作为主配置文件配置所有共同的配置;-dev和-local分别配置两种环境下的不同配置内容,如...

绝圣弃智-零的博客 3480

基于STM32的便携式心率血氧监测系统 | 保姆式教程 开源可复刻

本项目基于STM32F103C8T6核心控制器,完整实现了便携式心率血氧监测系统的全功能开发,覆盖MAX30102光电传感器驱动、PPG信号处理、心率血氧解算算法、人机交互、数据存储、报警保护、低功耗管理等核心功能,全程采用无跳步保姆式教学,从硬件选型、接线、CubeMX配置、代码开发、调试优化全流程拆解,跟着步骤一步步操作,就能顺利完成项目复刻

ZhongWeiXiang9的博客 767

SpringBoot 使用 spring.profiles.active 来区分不同环境配置

很多时候,我们项目在开发环境和生产环境的配置是不一样的,例如,数据库配置,在开发的时候,我们一般用测试数据库,而在生产环境,我们要用生产数据库,这时候,我们可以利用 profile 在不同的环境下配置用不同的配置文件或者不同的配置。

2509_94101248的博客 708

GPU大规模集群运维

CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的通用并行计算平台和程序模型,该架构使GPU能够解决复杂的计算问题。它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。开发人员可以使用C语言来为CUDA架构编写程序,所编写出的程序可以在支持CUDA的处理器上以超高性能运行。CUDA官方文档CUDA的软件环境允许开发者使用C++等高级编程语言开发程序。

weixin_42795092的博客 1738

Zigbee智能开关和单火取电技术

ZigBee智能开关(单火线)是在ZigBee协议基础上开发由单火线供电的开关,它可以控制各种类型负载的开关,如LED灯,白炽灯,荧光灯和钨丝灯等。配合相应的主机用户可以使用手机远程控制它,进而达到控制灯光开关的目的。它具有自组网功能,使用简单方便,给你的居家生活带来无线享受。可应用于家庭,办公,医院和酒店等场合。

danhuoxian的博客 1万+

spring.profiles.active和spring.profiles.include的使用及区别说明

application.properties中,配置spring.profiles.active=dev的同时指定spring.profiles.include=dev1,dev2。application.properties中,配置spring.profiles.active=dev,application-dev.properties中。spring.profiles.active=dev:用application-dev.properties。

2509_93881581的博客 658

PADS VX 蛇形走线的设置方法与绕制

在PCB设计过程中,在等长的设置中是必须用到蛇形走线的,并且DDR模块也会经常使用到。因此掌握蛇形走线的设置方法对我们PCB高速板设计中有很大的帮助。下面介绍蛇形走线的设置方法与绕制。1.单根网络线的蛇形走线的设置:打开PADS router界面,点击“工具”→“选项”(快捷方式“Ctrl+Enter”),弹出“选项”窗口,选择“布线”界面下的“调整”,在“调整”界面,设置蛇形走线,倒角比例可以灵活设置。操作如下图所示:完成蛇形走线的配置后,快捷方式“F3”进行交互式布线时,单击右键选择“添加蛇形走线”,便

tianpu2320959696的博客 3390

spring.profiles.active来分区配置

多环境配置     以上都不是重点,这才是重点,这才是重点,这才是重点,重要的事情说3遍。我们在开发Spring Boot应用时,通常同一套程序会被应用和安装到几个不同的环境,比如:开发、测试、生产等。其中每个环境的数据库地址、服务器端口等等配置都会不同,如果在为不同环境打包时都要频繁修改配置文件的话,那必将是个非常繁琐且容易发生错误的事。     对于多环境的配置,各种项目构建工具或是框架的基...

空城旧巷的博客 1万+

01-认识脑电信号及相关信号的预处理过程

脑电信号处理过程脑电实验为什么要预处理预处理方法降采样如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 脑电实验 本博客主要是记录基于脑电信号的情绪识别方法的研究...

脑机交流者的博客 7660

SAP HANA CDS View Syntax Options 全解:从语法到工程实践

本文面向SAP HANA工程师,深入解析CDS视图的语法与应用场景。文章涵盖XS Advanced环境下的CDS视图设计要点,包括SELECT基础语法、聚合函数与分组约束、参数化视图实现以及常见连接操作。特别强调工程实践中的注意事项:GROUP BY禁用表达式、原生表名大小写规范、结果集裁剪方式选择等。通过两个真实案例(办公室占用率统计和客户画像分析)展示CDS视图在实际业务中的应用,并提供性能优化建议。全文采用中英文混排规范,技术术语使用反引号标注,旨在为开发者提供清晰的CDS视图开发指南。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 211

SpringBoot中的配置文件spring.profiles

SpringBoot中的配置文件spring.profiles SpringBoot默认配置文件为application.properties/application-default.properties 若要使用指定配置文件,则有下列两种方式: 1.在运行时指定启动参数 --spring.profiles.active=local 这样可以不加载默认文件,而使用application-local.properties 2.spring.profiles.active 可以在application.p

ccloveslife 1959

华为OD机试 - 学校的位置 - 数学问题(Python/JS/C/C++ 2024 B卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题。

学Java,找哪吒 455

SpringBoot多环境配置与Profile灵活切换技巧

在实际的软件开发过程中,我们通常会面临多个不同的运行环境,如开发环境(Dev)、测试环境(Test)、生产环境(Prod)等。每个环境都有其特定的配置需求,例如数据库连接信息、日志级别、第三方服务地址等。Spring Boot 提供了强大的多环境配置和 Profile 切换功能,能够帮助开发者轻松应对不同环境的配置管理问题。本文将详细介绍 Spring Boot 多环境配置的方法和 Profile 灵活切换的技巧。

梵心白莲的博客 1154

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Maven profiles与springboot整合及原理

Profile 可以在以下三个地方定义:项目级别的 pom.xml:这是最常见的定义位置,适用于当前项目及其子模块。用户级别的 settings.xml:位于用户主目录下的 .m2/settings.xml,适用于该用户的全部 Maven 构建。全局级别的 settings.xml:位于 Maven 安装目录下的 conf/settings.xml,适用于所有用户的 Maven 构建。示例:在 pom.xml 中定义 Profile。

qq_37963767的博客 1727

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

SpringBoot —— 运行环境切换(多 profiles 文档)

SpringBoot ———— 运行环境切换(多 profiles 文档) SpringBoot 的一个应用为了在不同的环境下工作,常常会有不同的配置,代码逻辑处理。Spring Boot 对此提供了简便的支持: @Profile、spring.profiles.active 我们项目在开发环境和生成环境的环境配置是不一样的,例如,数据库配置,在开发的时候,我们一般用测试数据库,而在生产环境的时候,我们是用正式的数据,这时候,我们可以利用profile在不同的环境下配置用不同的配置文件或者不同的配置 sp

weixin_44730681的博客 578

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

SpringBoot多环境配置详解:Dev、Test、Prod灵活切换技巧

在软件开发过程中,我们通常会有多个不同的运行环境,如开发环境(Dev)、测试环境(Test)和生产环境(Prod)。不同的环境可能需要不同的配置,例如数据库连接信息、日志级别等。Spring Boot 提供了强大的多环境配置支持,让我们可以方便地在不同环境之间进行切换。本文将详细介绍 Spring Boot 多环境配置的方法和技巧。

梵心白莲的博客 1276

SpringBoot多环境(开发、生产和测试环境)配置文件

我们的项目在开发环境、生产环境,不同的环境下会有不同的配置。比如访问服务的端口,或者数据库的配置。如果每次切换环境都去直接修改这些配置的值,不仅麻烦而且很容易出错。我们如何才能根据环境动态的选择配置文件呢? 如图是我项目中的3个配置文件。其中,记录在application.yml中的配置项在任何环境下都会生效,记录在application-dev.yml中的配置项只在dev(开发)环境下生效,记录...

三毛村滴雪鱼粉的博客 5062

springboot外部配置文件的引用,灵活切换多套配置文件

外部配置文件引用 spring.profiles.active用来指定除了当前文件外,其他活动的配置文件。 例如spring.profiles.active=custom 其中custom指application.properties目录下的application-custom.properties spring.profiles.include用来指定除了当前文件外,还有哪些活动的配置文件。 例...

nealinvip的博客 701

SpringBoot yml配置文件切换

通过。

qq_36094347的博客 1222

设置SpringBoot多环境配置文件

在实际开发时经常需要把一些配置信息写在配置文件,比如mysql的主机地址、端口号、用户名和密码等。然而开发环境、测试环境和生产环境所使用的配置可能都不一样,为了避免频繁的修改配置文件,我们可以spring.profiles.active参数来设置启用哪个环境的配置。 在SpringBoot工程的src/main/resource目录下找到application.yml文件(默认是applicati...

施勇 1702
上一篇: easypoi
下一篇: easypoi利用模板导出图片到Excel;解决easypoi导出图片到合并单元格单元格被拉伸的问题
grootblockchain
博客等级 码龄11年 55粉丝 101原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值