Spring如何配置文件动态读取pom.xml中的属性

 更新时间:2024年10月24日 14:19:39   作者:知楠行易  
在项目开发中,经常需要将pom.xml中的属性动态传递给Spring配置文件,实现这一需求,可通过Maven的资源过滤功能,配置占位符替换,具体方法包括:在pom.xml中启用filtering,然后在Spring配置文件中通过${property}方式引用属性

Spring配置文件动态读取pom.xml属性

需求:

配置文件中的

spring.profiles.active=${env}

需要打包时动态绑定。

方案

1.在pom.xml文件中配置启用占位符替换

 <profiles>
        <!-- 本地开发 -->
        <profile>
            <id>dev</id>
            <properties>
                <env>dev</env>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <!-- 其他环境 -->
 </profiles>
 <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
</build>
  • Maven 中 <filtering> 的默认值是 false
  • 这意味着在复制资源文件时,Maven 不会对文件进行占位符替换(即过滤)。

2.在配置文件中配置 spring.profiles.active=@env@或者 spring.profiles.active=${env}

3.打包时选择环境 mvn clean package -Pprod

  • -P 参数用于激活 Maven 构建中的特定配置文件(profile)

自定义占位符

如果担心冲突,那么可以自定义占位符。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>3.2.0</version>
            <configuration>
                <delimiters>
                    <delimiter>#{</delimiter>
                    <delimiter>}</delimiter>
                </delimiters>
                <useDefaultDelimiters>false</useDefaultDelimiters>
            </configuration>
   		</plugin>
    </plugins>
</build>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解JavaWeb如何实现文件上传和下载功能

    详解JavaWeb如何实现文件上传和下载功能

    这篇文章主要介绍了如何利用JavaWeb实现文件的上传和下载功能,文中的示例代码讲解详细,对我们的学习或工作有一定的帮助,感兴趣的小伙伴可以学习一下
    2021-12-12
  • MyBatis批量添加、修改和删除

    MyBatis批量添加、修改和删除

    本文给大家分享mybatis批量添加,修改,删除的实例代码,本文代码简单易懂,对mybatis 批量添加、修改及删除相关知识感兴趣的朋友一起学习吧
    2016-01-01
  • SpringBoot集成PostgreSQL表级备份与恢复的实战指南

    SpringBoot集成PostgreSQL表级备份与恢复的实战指南

    本文介绍了在企业级应用中使用SpringBoot+PostgreSQL实现数据备份与恢复的方法,主要包括使用pg_dump导出数据、pg_restore恢复数据及ProcessBuilder调用系统命令,并详细解释了ProcessBuilder、pg_dump与pg_restore的用法、参数配置及常见问题解决方法
    2026-04-04
  • SpringMVC JSON数据交互实现过程解析

    SpringMVC JSON数据交互实现过程解析

    这篇文章主要介绍了SpringMVC JSON数据交互实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Java中API的使用方法详情

    Java中API的使用方法详情

    这篇文章主要介绍了Java中API的使用方法详情,指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用,需要的朋友可以参考下
    2022-04-04
  • Java实现数据库连接的最详细教程分享

    Java实现数据库连接的最详细教程分享

    JDBC,Java Database Connectivity,即Java数据库连接,是 Java 中的一套和数据库进行交互的API,本文就来讲讲Java如何利用JDBC实现数据库的连接吧
    2023-05-05
  • spring boot 2.x html中引用css和js失效问题及解决方法

    spring boot 2.x html中引用css和js失效问题及解决方法

    这篇文章主要介绍了spring boot 2.x html中引用css和js失效,需要的朋友可以参考下
    2018-11-11
  • Springboot使用influxDB时序数据库的实现

    Springboot使用influxDB时序数据库的实现

    项目中需要存放大量设备日志,且需要对其进行简单的数据分析,信息提取工作,所以本文就介绍一下Springboot使用influxDB时序数据库,感兴趣的可以了解一下
    2021-08-08
  • 浅谈Spring与SpringMVC父子容器的关系与初始化

    浅谈Spring与SpringMVC父子容器的关系与初始化

    这篇文章主要介绍了浅谈Spring与SpringMVC父子容器的关系与初始化,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Java8新特性之新日期时间库的使用教程

    Java8新特性之新日期时间库的使用教程

    这篇文章主要给大家介绍了关于Java8新特性之新日期时间库使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12

最新评论