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

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 不会对文件进行占位符替换(即过滤)。

  1. 在配置文件中配置 spring.profiles.active=@env@或者 spring.profiles.active=${env}
  2. 打包时选择环境 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>

http://www.kler.cn/a/368957.html

相关文章:

  • 【STM32外设及其应用】
  • 摊牌了,创业失败了
  • java 提示 避免用Apache Beanutils进行属性的copy。
  • 在Postgresql中对空间数据进行表分区的实践
  • Lucas带你手撕机器学习——SVM支持向量机
  • ❤️算法笔记❤️-(每日一刷-5、最长回文串)
  • vue mysql 直连
  • 汽车电子行业的LIMS:提升质量与效率的关键助力
  • 【STM32】单片机ADC原理详解及应用编程
  • 美国大学生数学建模竞赛(MCM/ICM)介绍
  • 高速自爆穿梭无人机技术详解
  • 【架构-33】Ribbon、Nginx、Gateway之间的区别和联系
  • OCR应用之集装箱箱号自动识别技术,原理与应用
  • matlab逻辑与有两种表达
  • 深入浅出 C++ STL:解锁高效编程的秘密武器
  • vLLM推理部署Qwen2.5
  • C++学习路线(二十八)
  • 图---java---黑马
  • SELinux详解
  • 图像处理学习笔记-20241021
  • Spring Boot 应用开发全攻略:从入门到精通
  • python——文件存储与写入path
  • CentOS 7 上安装 MySQL 8.0 教程
  • Python入门——yield生成器和iter迭代器
  • 学习记录:js算法(七十六):一手顺子
  • Vue3 跨标签页或跨窗口通信