使用Maven配置文件激活Spring Boot配置文件

Java 项目 IntelliJ IDEA 多环境配置详解 多环境配置是 Java 项目开发中的重要实践,能够帮助开发者适应不同环境的资源差异,简化部署流程,并保护敏感信息。在 IntelliJ IDEA 中,可以通过 Maven Profiles、Spring Boot Profiles 或手动加载配置文件等方式实现多环境配置。选择合适的方法,可以提高项目的灵活性、可维护性和安全性。希望本文的示例和讲解能帮助您更好地管理项目的多环境配置,提升开发效率。 阅读详情

使用Maven配置文件激活Spring Boot配置文件

转载自http://dolszewski.com/spring/spring-boot-properties-per-maven-profile/

有些团队更喜欢为每个应用程序运行时环境提供单独的Maven构建配置文件,例如dev,test,prod等。在本文中,我将向您展示如何使用Spring Boot配置文件连接Maven配置文件。您将学习如何使用Maven的pom.xml文件设置活动的Spring配置文件。

Spring配置文件的单独application.properties

您将使用Spring Boot application.properties文件来激活其中一个配置文件。如果您的应用程序资源中没有该文件,则现在是创建该文件的正确时机。

通常,我们希望使用Maven选择活动的Spring配置文件来构建具有所选配置文件的JAR / WAR文件。该演示将向您展示如何做到这一点。

首先,创建两个额外的配置文件。文件名应与模式application- {profile} .properties匹配。将文件添加到Maven项目的src / main / resources目录中,位于主application.properties文件旁边。

img

Maven配置

然后是时候修改你的pom.xml了。您创建了两个配置文件,因此现在需要定义两个Maven配置文件。

在两个Maven配置文件中,定义一个自定义属性并调用它,例如,activateProperties。这个名字并不重要。更重要的是它的价值。

自定义Maven属性的值应与要使用相应Maven配置文件激活的Spring配置文件匹配。在我们的示例中,我们将它们称为dev和release。

此外,您可以标记默认情况下运行的一个Maven配置文件。如果您不自行选择一个配置文件,则以下示例将激活第一个配置文件。

<profile>
    <id>dev</id>
    <properties>
        <activatedProperties>dev</activatedProperties>
    </properties>
    <activation>
        <activeByDefault>true</activeByDefault>
    </activation>
</profile>
<profile>
    <id>release</id>
    <properties>
        <activatedProperties>release</activatedProperties>
    </properties>
</profile>

Maven资源过滤

让我们留在pom.xml片刻。在上一步中,您定义了Maven和Spring配置文件之间的映射。但您仍需要将配置文件映射传输到Spring Boot应用程序中。

怎么样?

您将使用Maven 在application.properties文件中使用定义的Maven配置文件中的值设置名为spring.profiles.active的 Spring属性。顾名思义,此属性负责激活Spring配置文件。

为此,您需要允许Maven在构建过程中操作资源文件。您可以通过在pom.xml中启用Resources插件的过滤来完成此操作。但是,如果使用spring-boot-starter-parent作为pom.xml的父级,则可以跳过此步骤。

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
    …
</build>

现在是时候迈出最后一步了。将以下行添加到application.properties文件中。

spring.profiles.active=@activatedProperties@

*@*字符之间的值必须与Maven配置文件中的自定义属性匹配。

它是如何工作的?

运行构建时,Resources Plugin将使用当前活动的Maven配置文件中的属性替换application.properties中的activatedProperties占位符。

启动应用程序后,Spring框架将激活已过滤的application.properties文件中定义的Spring配置文件。接下来,框架根据活动配置文件读取其他application- {profile} .properties文件。

需要注意的是: Spring Boot 1.3替换了过滤值的默认Resources Plugin语法。框架使用*@ activatedProperties @而不是$ {activatedProperties}*表示法。

总结

新建application-prod.yml, application-dev.yml, application-test.yml

内容如下:

#application-dev.yml
server:
  port: 8081
  
#application-test.yml
server:
  port: 8082
  
#application-prod.yml
server:
  port: 8083

在pom文件中添加:

<profiles>
        <profile>
            <id>dev</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <!-- 自定义属性 -->
                <profileActive>dev</profileActive>
            </properties>
        </profile>
        <profile>
            <id>test</id>
            <properties>
                <profileActive>test</profileActive>
            </properties>
        </profile>
        <profile>
            <id>prod</id>
            <properties>
                <profileActive>prod</profileActive>
            </properties>
        </profile>
    </profiles>

application.yml中添加

spring:
  profiles:
    active: @profileActive@ #这个必须和pom中自定义字段意义

使用下图设置启动方式:
在这里插入图片描述

这是我们设置的是启动id为test的配置, 这时@profileActive@被替换成test

别再手动建模了!用Simscape Multibody Link一键导入SolidWorks装配体到Simulink 本文介绍了如何利用Simscape Multibody Link插件将SolidWorks装配体一键导入Simulink,实现CAD到仿真的无缝衔接。该技术显著提升机械系统设计与控制效率,特别适用于工业机器人、车辆悬架等复杂机构的动力学分析。文章详细解析了插件安装、模型导出优化及仿真验证的全流程,帮助工程师摆脱手动建模的低效工作模式。 阅读详情

相关推荐

vmware vsphere5---部署vCSA(VMware vCenter Server)附带第二阶段安装报错解决方案

因为这份文档我是边做边写的,遇到问题重新装了好几次所以IP会很乱ESXI主机为192.168.20.10VCSA为192.168.20.7,后台为192.168.20.7:5480后期请自行对应,后面的192.168.20.57请对应192.168.20.7,或根据自己的来。

m0_70212665的博客 5712

springboot之pom配置profiles适用于不同开发环境(亲测可用)

pom.xml配置 &lt;profiles&gt; &lt;profile&gt; &lt;!-- 生产环境 --&gt; &lt;id&gt;prod&lt;/id&gt; &lt;properties&gt; &lt;profileActive&gt;prod&lt;/profileActive&gt;

xoxo的博客 5884

Cadence电路原理图全部变成黄色如何解决?

Cadence电路原理图全部变成黄色如何解决?现象:解决方法: 最近用cadence仿真锁相环,拷贝师哥的library后打开,发现schematic中全部变成了黄色,但可以正常修改元件参数,正常仿真。仅仅影响使用效果,看起来超级难受。 现象: 1.电路元件及连线全部变为黄色 2.可以正常修改参数,电路ADE仿真 如下图所示: 解决方法: 重新导入display.drf文件,步骤如下: tool——Display Resource Manager,截图如下 完成上述步骤,显示如下界面,选择Merge选项

virtuoso~晓晓 1万+

pom.xml中maven profile的激活方式

笔者日常:啊~ maven! maven profiles简单介绍: maven profiles是maven从POM4.0开始给我们提供的一种新的特性。它允许maven根据不同的环境采用不同的maven配置。一个profiles标签中可以有很多个profile,只需要根据不同的项目环境,激活不同的profile即可。 提示:也可以同时激活多个profile。 profile...

JustryDeng 1万+

node-red 可视化探索

配置socket选择配置流程产生url。

weixin_44133581的博客 3412

CATIA二次开发CAA:(一)开发环境搭建

CATIA+CAA+RADE+VS2012

ysm1987的博客 1万+

Maven profile配置管理及激活profile的几种方式(非常非常详细)

目录 前沿: 针对不同环境的 profile 的配置 激活 profile 配置方式 1. 命令行激活 2. Settings 文件显示激活 3. 系统属性激活 4. 操作系统环境激活 5. 文件存在与否激活 6. 默认激活 profile种类 1)pom.xml 2)用户 settings.xml 3)全局 settings.xml 前沿: 为了实现不同环境构建的不同需求,这里使用到了 profile。因为 profile 能够在构建时修改 pom 的一个子集,或者添加额

奇点 2万+

zynq-7000学习笔记(八)——USB摄像头图像采集

PC平台:WINDOWS 10 64位 Xilinx设计开发套件:Xilinx_vivado_sdk_2015.4 开发板:Zed Board USB摄像头:罗技 C270(720P) linux源码:2016_R1 一、配置linux,支持UVC       如果是中星微的ZC3XX系列的芯片,则要进到GSPCA把ZC3XX的驱动选上

luotong86的专栏 1万+

Spring Boot Profiles 激活方式

spring boot: Profile 的概念其实很早在 Spring Framework 就有了,在 Spring Framework 3.1 版本引入了注解@Profile和Environment环境配置的抽象,只是在 Spring Boot 框架里再进一步将 Profiles 功能进行扩展,使它也成为了 Spring Boot 特性之一,为此单独在官方文档 25. Pr...

weixin_30474613的博客 361

LeRobot 入门教程(一)软件环境、部署流程及摄像头配置

🤖 LeRobot:开源机器人学习平台 摘要:LeRobot是一个基于PyTorch的开源机器人学习平台,提供模型、数据集和工具,旨在降低机器人技术门槛。平台包含经过验证的模仿学习和强化学习方法,并提供预训练模型、人类演示数据集及模拟环境。安装需从源码获取,支持Python 3.10环境,可选扩展包括仿真环境(如gym-aloha)、电机控制(Dynamixel/Feetech SDK)和实验跟踪(Weights & Biases)。该平台托管在HuggingFace,并设有社区Discord频道

2506_90492529的博客 3416

excel 如何自动调整行间距 vba

EXCEL是一个非常使用的软件,虽然我们平时仅使用他做一些报表,仅此而已;我在工作中,由于很懒,不愿意做考试重复的工作,就想着使用vba的宏来完成重复的工作,这样就能省出一部分的时间来了。本人不喜欢在博客里面写以下教程类的东西,我的理念是将工作中的痛点的解决办法分享出来,以解决问题为主。

sixtome 1316

Profile,多配置管理,maven和spring.profiles.active可以做到

maven加上profiles标签,mvnclean package -P prod,maven打包的时候会将prod下的文件替换src/main/resources下的文件 <profiles> <profile> <!-- 本地开发环境 --> <id>dev</id> <properties> <package.environment>dev</package.en.

YZCSDFYT的博客 944

安卓中蓝牙免提HFP的一些分析

最近看了一些大牛的博客,无不提到了技术分享的重要性,的确,分享自己的知识不仅仅是与他人讨论并相互提高的过程,更是对自己知识的梳理。希望自己能以此为契机,形成周期性博客分享的习惯。 文章标题为HFP的一些分析,HFP(Hand Free Profile)主要定义了安卓中与接打电话相关的一些功能的实现。本文主要介绍这其中对于HFP非常重要的Service Level Connection的建立。首先...

底层码农 771

Spring Boot 多环境配置与切换

通过以上配置,Spring Boot 项目可以实现环境的无缝切换,提升了开发和部署的效率,同时降低了配置出错的风险。在打包过程中,Maven会根据指定的Profile将配置文件中的占位符(如)替换为对应Profile中定义的属性值。例如,使用testProfile打包时,将被替换为。

DolphinHome的博客 1400

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

超详细!Spring Boot项目结合Maven Profile实现多环境切换,轻松搞定开发部署难题

Spring Boot Profile 是一种配置机制,它允许我们在同一个应用程序中针对不同的环境(如开发、测试和生产环境)设置不同的配置。这意味着我们可以根据环境的需求,灵活地加载特定的配置,让应用程序在不同环境下都能完美运行。这些配置通常存储在以application-{profile}.yml或application-{profile}.properties命名的文件中,比如application-dev.yml就是专门用于开发环境的配置文件。

kingwinstar的博客 1389

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

spring boot 多环境配置

定义通用配置,环境专用配置会覆盖通用配置。Spring Boot的多环境配置通过。

qq_40464334的博客 302

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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

spring-boot多环境配置文件

spring-boot多环境配置文件 目录 配置 多环境配置文件名称要遵循格式 application-{profile}.yml application.yml spring: profiles: active: prod application-dev.yml server: port: 8000 application-pro...

weixin_30426879的博客 147

Springboot使用maven的profiles实现多环境配置文件切换

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33814685的博客 355

SpringBoot配置文件

它会启动内嵌的 Tomcat/Jetty/WebSphere 等 Web 容器,并加载你的 Spring Boot 应用。这是 Spring Boot 官方提供的 Maven 插件,用于帮助你打包、运行和部署 Spring Boot 应用。这是一个 Maven 命令,用于直接运行 Spring Boot 应用,不需要先执行 mvn package 打包。[Q&A] spring-boot-maven-plugin 是什么?[Q&A] mvn spring-boot:run 是做什么的?

张紫娃的博客 389

Spring Boot 项目中配置文件加载原理深度解析

通过多种方式指定额外的配置文件路径(优先级高于默认路径):​Spring Boot 的配置文件加载机制通过多层级优先级、多环境支持和灵活的扩展点,为开发者提供了强大的配置管理能力。理解其核心原理(如加载顺序、环境激活、配置合并)有助于在开发中避免配置冲突,实现不同环境的高效部署。在实际项目中,建议遵循 “公共配置放主文件,环境特定配置放 Profile 文件” 的原则,并结合命令行参数和环境变量实现动态配置,提升项目的可维护性与灵活性。

wxd0116的博客 1355

[亲测]集成maven和Spring boot的profile-动态加载不同环境的配置文件

今天总结一下,项目中如何动态加载不同环境的配置文件 1.先看一下配置文件。配置文件挺多的,因为此项目比较大,开发环境(dev和dev1),测试环境(pre),生产环境(pro),云环境(ali)等 2.再来看一下主配置文件(application.yml)。注意圈中部分 3.看一下对应pom文件。拿这张图和图2比较可发现:图2中的active的值和图3 ...

Armymans的博客 550

idea环境下Spring Boot项目切换配置文件的多种方式

转自:https://blog.youkuaiyun.com/weixin_41461281/article/details/80453106 1,第一种     在application.properties配置文件里添加一行配置。 #加载开发的配置文件 spring.profiles.active=dev 开发配置文件为application-dev.properties。 2,第二种 点击E...

qq_36688928的博客 721

第一个springboot项目的创建:使用Maven创建Spring Boot项目的目录结构与配置解析

Spring Boot通过约定优于配置(Convention over Configuration)的核心设计理念,以标准化的项目结构(如逻辑代码容器、resources资源配置中心、pom.xml依赖基因图谱)和智能默认配置为基石,结合starter依赖模块化能力包与自动化配置引擎,彻底简化了开发流程。其配置体系通过与.yml双格式支持、多环境策略()及优先级机制(命令行 > 外部目录 > classpath),实现灵活的环境适应能力;

一本大学生java学习技术分享与交流 894

Spring boot 使用 Maven 切换环境

多文件夹的方式切换环境 使用了Maven 仓库 和plugins

Yinanbo的博客 712

Spring Boot 多环境配置详解

Spring Boot 多环境配置指南:通过 profile 机制实现开发、测试和生产环境的差异化配置。本文详解如何创建 application-{profile}.yml 文件,通过 spring.profiles.active 激活环境,使用 @Profile 控制 Bean 加载,并提供命令行、JVM、Docker 和 Kubernetes 等部署方案。同时介绍 Maven 构建时的配置替换,帮助开发者灵活管理不同环境参数。全文包含完整 YAML 配置和代码示例,涵盖从原理到实践的完整解决方案。

BUG糕手的博客 916
上一篇: CentOS安装Redis
下一篇: SpringBoot获取项目ip和端口号
AngerWind
博客等级 码龄10年 7粉丝 12原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值