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

springboot + maven 使用资源占位符实现动态加载配置文件

第一步:Maven资源过滤(在pom.xml中启用资源过滤并定义runtime-profile变量)
- - 因为要使用证书,所以这里需要单独设置某些资源不过滤;
- - :不需要单独过滤,用第一个;需要单独过滤,用第二个。


<!-- 定义Profiles -->
<profiles><profile><id>dev</id><properties><runtime-profile>dev</runtime-profile></properties><activation><activeByDefault>true</activeByDefault> <!-- 默认激活 --></activation></profile><profile><id>pro</id><properties><runtime-profile>pro</runtime-profile></properties></profile>
</profiles><!-- maven打包插件  -->
<build><finalName>${project.artifactId}</finalName><resources><resource><directory>src/main/resources</directory><filtering>true</filtering> <!-- 开启过滤 --></resource></resources><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins>
</build>
<properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><org.bjyc.frameworks.version>0.0.1-SNAPSHOT</org.bjyc.frameworks.version><!-- 防止二进制文件被意外过滤 --><maven.resources.nonFilteredFileExtensions>p12,pfx,cer,keystore,jks</maven.resources.nonFilteredFileExtensions>
</properties><!-- maven打包插件  -->
<build><finalName>${project.artifactId}</finalName><!-- 关键资源过滤配置 --><resources><!-- 处理需要过滤的文本资源 --><resource><directory>src/main/resources</directory><filtering>true</filtering><includes><include>application*.properties</include><include>application*.yml</include><include>bootstrap*.properties</include><include>bootstrap*.yml</include></includes></resource><!-- 单独处理证书文件 - 关闭过滤 --><resource><directory>src/main/resources</directory><filtering>false</filtering> <!-- 确保二进制无损 --><includes><include>wxcert/*.p12</include></includes></resource><!-- 处理其他非过滤资源 --><resource><directory>src/main/resources</directory><filtering>false</filtering><excludes><exclude>wxcert/*.p12</exclude><exclude>application*.properties</exclude><exclude>application*.yml</exclude><exclude>bootstrap*.properties</exclude><exclude>bootstrap*.yml</exclude></excludes></resource></resources><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><!-- 激活 profile 配置 --><profiles><profile>${runtime-profile}</profile></profiles></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins><!-- 添加资源过滤扩展配置 --><pluginManagement><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>3.3.0</version><configuration><!-- 防止二进制文件被过滤 --><nonFilteredFileExtensions><nonFilteredFileExtension>p12</nonFilteredFileExtension><nonFilteredFileExtension>cer</nonFilteredFileExtension><nonFilteredFileExtension>keystore</nonFilteredFileExtension></nonFilteredFileExtensions></configuration></plugin></plugins></pluginManagement>
</build>

第二步:配置 YAML 文件

#application.yml
spring:profiles:active: '@runtime-profile@'  # Maven 资源过滤将替换此占位符
#bootstrap.yml
spring:profiles:active: '@runtime-profile@'  # 与 application.yml 保持一致

第三步:在 IDEA 中使用 Maven Profiles,勾选指定的文件,如:‘dev’或者‘pro’

在这里插入图片描述

http://www.xdnf.cn/news/1246519.html

相关文章:

  • 【springcloud的配置文件不生效】
  • Linux 系统启动原理2
  • Occ3D: A Large-Scale 3D Occupancy Prediction Benchmark for Autonomous Driving
  • Unity开发者快速认识Unreal 的C++(四)Pawn和Actor
  • 智慧城市SaaS平台|市容环卫管理系统
  • Spring-rabbit使用实战六
  • Could not load the Qt platform plugin “xcb“ in “无法调试与显示Opencv
  • 类内部方法调用,自注入避免AOP失效
  • RK3568 Linux驱动学习——字符设备驱动开发
  • 森赛睿科技成为机器视觉产业联盟会员单位
  • C++ - 仿 RabbitMQ 实现消息队列--服务端核心模块实现(六)
  • Vue.js 教程
  • css3属性总结和浏览器私有属性
  • Matplotlib(六)- 坐标轴定制
  • 【视觉识别】Ubuntu 22.04 上安装和配置 TigerVNC 鲁班猫V5
  • 技术与情感交织的一生 (十一)
  • 漏洞分析:90分钟安全革命
  • 原型模式在C++中的实现与面向对象设计原则
  • vue3 计算属性
  • 前端实现Excel文件的在线预览效果
  • 10-红黑树
  • LINUX 85 SHElL if else 前瞻 实例
  • Goby 漏洞安全通告| NestJS DevTools /inspector/graph/interact 命令执行漏洞(CVE-2025-54782)
  • 国内办公安全平台新标杆:iOA一体化办公安全解决方案
  • 机械学习--决策树(实战案例)
  • Linux和mysql练习题2
  • Electron-updater + Electron-builder + IIS + NSIS + Blockmap 完整增量更新方案
  • HTML 媒体元素概述
  • LeetCode 71~90题解
  • MongoDB 从3.4.0升级到4.0.0完整指南实战-优雅草蜻蜓I即时通讯水银版成功升级-卓伊凡|bigniu