JavaWeb-Maven Profile切换数据库连接配置

本文介绍了如何在JavaWeb项目中使用Maven Profile来切换不同的数据库连接配置。通过在src/main/resources下创建不同环境的配置文件,如db_dev.properties(开发环境)和db_pro.properties(生产环境),然后在pom.xml中配置资源过滤,实现利用Maven在打包时自动将${key}替换为实际值,从而达到根据不同Profile选择合适的数据库配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

切换数据库连接配置

编写不同环境的配置文件
1.在pinyougou-dao工程中src/main/resources下创建filter文件夹

2.在filter文件夹下创建db_dev.properties ,用于配置开发环境用到的数据库

envir.jdbc.driver=com.mysql.jdbc.Driver

envir.jdbc.url=jdbc:mysql://localhost:3306/pinyougoudb?characterEncoding=utf-8

envir.jdbc.username=root

envir.jdbc.password=root


3.在filter文件夹下创建db_pro.properties,用于配置生产环境用到的数据库

envir.jdbc.driver=com.mysql.jdbc.Driver

envir.jdbc.url=jdbc:mysql://localhost:3306/pinyougoudb_pro?characterEncoding=utf-8

envir.jdbc.username=root

envir.jdbc.password=root


4.修改properties文件夹下的db.properties文件

jdbc.driver=${envir.jdbc.driver}

jdbc.url=${envir.jdbc.url}

jdbc.username=${envir.jdbc.username}

jdbc.password=${envir.jdbc.password}

定义Profile

修改pom.xml文件

<!-- install -P pro/dev 安装  pro环境/dev环境的 properties配置文件  package -P pro/dev 打包 pro/dev 环境的 properties -->
  
  <!--

    配置默认install/package使用的properties文件,如运行package (-P pro)命令时,不指定-P pro时默认使用这个配置,
  该默认的配置必须配置上,不可以省略,且"<env>"必须与下面fileter过滤器中的${env}内的名称相同,否则报错

--> 

  <properties><!--默认使用的properties文件配置-->

        <env>dev</env>

  </properties>


  <profiles>

    <profile>

        <id>dev</id>

        <properties>

            <env>dev</env>

        </properties>

    </profile>   

    <profile>

        <id>pro</id>

        <properties>

            <env>pro</env>

<!-- 可以使用<en>pro</en>标签,但是需要在下面的filter路径中改为${en},否则找不到 -->

        </properties>

    </profile>

  </profiles>


资源过滤与变量替换

修改pom.xml ,在build节点中添加如下配置

<build>

   <!-- 定义过滤器 ,指定过滤资源的地址-->

    <filters>

        <filter>src/main/resources/filters/db_${env}.properties</filter>

 <!-- 

这里的${env}中的名称env必须与上面配置的默认的properties中的标签名env相同,否则报错,可以与上面的默认properties配置下面各个环境下的 <env>标签不同名,不同名时(即不是env时)即使通过package -P pro指定环境也会使用默认的properties配置,因为在默认propeties配置的下面的profiles中均为<env>标签的配置,找不到同名的

-->

     </filters>

    <resources>

        <resource>

<!-- 资源目录,下面的意思是在下面的资源目录下启用过滤 -->

            <directory>src/main/resources</directory>

            <filtering>true</filtering>

        </resource>        

    </resources>
</build>  


这里我们利用filter实现对资源文件(resouces)过滤 
maven filter
可利用指定的xxx.properties中对应的key=value对资源文件中的${key}进行替换,最终把你的资源文件中的username=${key}替换成username=value

打包

pinyougou-dao 工程执行命令:package -P pro , 解压生成的jar包,观察db.properties配置文件内容,已经替换为生产环境的值。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值