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

根据 Maven 的不同 profiles 来改变 Spring Boot 应用程序的配置

在 Maven 的 pom.xml 文件中,你可以定义多个 profiles,每个 profile 可以包含一组特定的配置属性。这些属性可以被传递到 Spring Boot 的 application.properties 或 application.yml 文件中,以便根据不同的环境(如开发、测试、生产)来调整配置。

下面是一个如何在 pom.xml 中定义 profiles,并在 application.properties 中引用这些属性的示例。

在 pom.xml 中定义 Profiles
首先,在 pom.xml 中定义不同的 profiles,例如开发(dev)和生产(prod)环境:

<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <env.database.url>jdbc:mysql://localhost:3306/devdb</env.database.url>
            <env.database.user>devuser</env.database.user>
            <env.database.password>devpassword</env.database.password>
        </properties>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <env.database.url>jdbc:mysql://production.server:3306/proddb</env.database.url>
            <env.database.user>produser</env.database.user>
            <env.database.password>prodpassword</env.database.password>
        </properties>
    </profile>
</profiles>

在 application.properties 中使用 Maven Filters
为了根据 Maven 的 profiles 动态地设置 application.properties 的值,你可以使用 Maven 的资源过滤功能。首先,你需要创建一个 application.properties 的模板文件,比如 src/main/resources/application.properties.template:

properties
spring.datasource.url= e n v . d a t a b a s e . u r l s p r i n g . d a t a s o u r c e . u s e r n a m e = {env.database.url} spring.datasource.username= env.database.urlspring.datasource.username={env.database.user}
spring.datasource.password=${env.database.password}
然后,在 pom.xml 中配置资源过滤:

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <includes>
                <include>application.properties.template</include>
            </includes>
            <targetPath>${project.build.outputDirectory}/resources</targetPath>
            <renaming>
                <rename>application.properties.template,application.properties</rename>
            </renaming>
        </resource>
    </resources>
</build>

注意:这里的配置可能需要根据你的项目结构和 Maven 版本进行调整。有些 Maven 插件(如 maven-resources-plugin)可能提供了更直接的方式来处理资源过滤和重命名。


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

相关文章:

  • 前端处理input框只能输入带小数点的数字
  • 【算法】【优选算法】前缀和(下)
  • PG-DERN 解读:少样本学习、 双视角编码器、 关系图学习网络
  • 【配置后的基本使用】CMake基础知识
  • torch.stack 张量维度的变化
  • JS的学习与使用
  • 如何使用PCL处理ROS Bag文件中的点云数据并重新保存 ubuntu20.04
  • D3基础:绘制圆形、椭圆形、多边形、线、路径、矩形
  • Windows文件资源管理器增强工具
  • Mac的Terminal随机主题配置
  • 关于Redux的学习(包括Redux-toolkit中间件)
  • 服务器作业4
  • 常见的网络协议汇总(涵盖了不同的网络层次)
  • 网络安全与CTF在线学习资源网站
  • 【第5章 | 神经网络】(python机器学习)
  • node版本升级,从卸载到使用nvm管理node版本并配置vue环境(学习趟雷版)
  • 【技术解析】Dolphinscheduler实现MapReduce任务的高效管理
  • Python蓝桥杯刷题1
  • 【hacker送书第16期】Python数据分析、挖掘与可视化、AI全能助手ChatGPT职场工作效率提升技巧与案例
  • k8s集群扩容
  • React状态管理之Zustand
  • AIGC----教育领域的AIGC:个性化学习材料生成
  • 【taro react】 ---- 解决 input 、textarea 层级穿透
  • 在 Ubuntu 中用 VSCode 配置 C 语言项目的编译与调试(详解教程)
  • 2411rust,1.75.0
  • EasyExcel在SpringBoot中的简单使用