93分布式电商项目 - Maven Profile切换数据库连接配置

如果在现在的项目中,需要切换数据库连接配置,使用Maven Profile来配置,可以按如下步骤来进行修改。

(1)在 pinyougou-dao 工程中 src/main/resources 下创建 filter 文件夹

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

env.jdbc.driver=com.mysql.jdbc.Driver
env.jdbc.url=jdbc:mysql://localhost:3306/pinyougoudb?characterEncoding=utf-8
env.jdbc.username=root
env.jdbc.password=123456

(3)filter 文件夹下创建 db_pro.properties

env.jdbc.driver=com.mysql.jdbc.Driver
env.jdbc.url=jdbc:mysql://localhost:3306/pinyougoudb_pro?characterEncoding=utf-8
env.jdbc.username=root
env.jdbc.password=123456

(4)修改 properties 下的 db.properties

jdbc.driver=${env.jdbc.driver}
jdbc.url=${env.jdbc.url}
jdbc.username=${env.jdbc.username}
jdbc.password=${env.jdbc.password}

接下来开始定义Profile,修改pom.xml文件

<properties>
	 <env>dev</env>
</properties> 
<profiles> 
	<profile>
		 <id>dev</id> 
		 <properties>
			  <env>dev</env>
		 </properties>
	</profile> 
	<profile> 
		<id>pro</id>
		<properties>
			 <env>pro</env>
		 </properties>
	 </profile>
 </profiles>

这里定义了 2 个 profile,分别是开发环境和生产环境

接着继续修改pom.xml,在build节点中添加如下配置:

<filters> 	
	<filter>src/main/resources/filters/db_${env}.properties</filter>
</filters> 
<resources> 
	<resource> 
		<directory>src/main/resources</directory> 
		<filtering>true</filtering>
	</resource>
</resources>

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

打包

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

在 pinyougou-sellergoods-service 工程 执行命令 pageage ,解压生成的 war 包里的pinyougou-dao 的 jar 包,发现也是生成环境的值。

测试

【1】连接生产数据库
(1)在 pinyougou-dao 工程执行命令:install -P pro
(2)在 pinyougou-sellergoods-service:执行命令:tomcat7:run
(3)在 pinyougou-shop-web : 执行命令:tomcat7:run

【2】连接开发数据库
(1)在 pinyougou-dao 工程执行命令:install -P dev (或 install )
(2)在 pinyougou-sellergoods-service:执行命令:tomcat7:run
(3)在 pinyougou-shop-web : 执行命令:tomcat7:run

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值