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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 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

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
18天前
|
SQL 关系型数据库 MySQL
乐观锁在分布式数据库中如何与事务隔离级别结合使用
乐观锁在分布式数据库中如何与事务隔离级别结合使用
|
21天前
|
Java Apache Maven
Maven 项目文档
本节介绍如何构建Maven项目文档,以C:/MVN目录下的`consumerBanking`为例。通过`mvn archetype:generate`命令快速搭建Java项目骨架。为避免`mvn site`执行时遇到`java.lang.NoClassDefFoundError`错误,需在`pom.xml`中加入或更新`maven-site-plugin`至3.3版本和`maven-project-info-reports-plugin`至2.7版本。
|
17天前
|
存储 SQL 分布式数据库
OceanBase 入门:分布式数据库的基础概念
【8月更文第31天】在当今的大数据时代,随着业务规模的不断扩大,传统的单机数据库已经难以满足高并发、大数据量的应用需求。分布式数据库应运而生,成为解决这一问题的有效方案之一。本文将介绍一款由阿里巴巴集团自主研发的分布式数据库——OceanBase,并通过一些基础概念和实际代码示例来帮助读者理解其工作原理。
66 0
|
3天前
|
Java Apache Maven
Maven 项目文档
Maven 项目文档
|
7天前
|
Java Apache Maven
Maven 项目文档
Maven 项目文档
|
5天前
|
Java Apache Maven
Maven 项目文档
Maven 项目文档
|
1天前
|
Java Apache Maven
Maven 项目文档
Maven 项目文档
|
19天前
|
Java Apache Maven
Maven 项目文档
Maven 项目文档
|
12天前
|
Java Apache Maven
Maven 项目文档
Maven 项目文档
|
11天前
|
Java Apache Maven
Maven 项目文档
Maven 项目文档