Spring学习总结(18)——Spring整合Mysql数据库一主多从、多主多从配置
一、新建jdbc.properties
配置文件
master.jdbc.driverClassName=com.mysql.jdbc.Driver
master.jdbc.url=jdbc:mysql://127.0.0.1:3306/springdemo?useUnicode=true&characterEncoding=UTF-8
master.jdbc.username=root
master.jdbc.password=123456
slave.jdbc.driverClassName=com.mysql.jdbc.Driver
slave.jdbc.url=jdbc:mysql://127.0.0.1:3306/springdemo?useUnicode=true&characterEncoding=UTF-8
slave.jdbc.username=read
slave.jdbc.password=123456
配置文件的作用大家都清楚了,是因为我们可以在applicationContext.xml
文件中以${master.jdbc.url}
的形式读取内容,配置文件一般在/src/
目录下。
二、配置applicationContext.xml
<!-- 将多个配置文件读取到容器中,交给Spring管理 -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:global.properties</value>
<value>classpath:jdbc.properties</value>
</list>
</property>
</bean>
<!--master 配置数据源 -->
<bean id="masterDataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<property name="driverClassName">
<value>${master.jdbc.driverClassName}</value>
</property>
<property name="url">
<value>${master.jdbc.url}</value>
</property>
<property name="username">
<value>${master.jdbc.username}</value>
</property>
<property name="password">
<value>${master.jdbc.password}</value>
</property>
...
</bean>
<!--slave 配置数据源 -->
<bean id="slaveDataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<property name="driverClassName">
<value>${slave.jdbc.driverClassName}</value>
</property>
<property name="url">
<value>${slave.jdbc.url}</value>
</property>
<property name="username">
<value>${slave.jdbc.username}</value>
</property>
<property name="password">
<value>${slave.jdbc.password}</value>
</property>
...
</bean>
<bean id="dataSource" class="cn.mayongfa.service.imp.DynamicDataSource">
<property name="targetDataSources">
<map>
<entry key="slave" value-ref="slaveDataSource" />
</map>
</property>
<property name="defaultTargetDataSource" ref="masterDataSource" />
</bean>
<!-- 配置Jdbc模板 -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 配置事务管理器 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
p:dataSource-ref="dataSource" />
<!-- 数据源切换类 -->
<bean id="dataSourceChoose" class="cn.mayongfa.interceptor.DataSourceChoose" />
<!-- 通过AOP配置提供事务增强,让service包下所有Bean的所有方法拥有事务 -->
...
上面配置我省略了 druid 数据连接池的一些配置和 service 层事务处理,文件并不完整,具体文件示例见GitHub:https://github.com/mafly/SpringDemo/blob/master/WebContent/WEB-INF/applicationContext.xml
如何使用阿?
public interface UserBasisService {
/**
* 保存
* @param entity
* @return
*/
@DataSource
public long Save(UserBasis entity);
/**
* 删除
* @param ID
* @return
*/
@DataSource
public Boolean Delete(long ID);
/**
* 获取信息
* @param ID
* @return
*/
@DataSource(DataSourceType.Slave)
public UserBasis getEntity(long ID);
/**
* 根据条件获取数据条数
* @return
*/
@DataSource(DataSourceType.Slave)
public int getListCount(Map<String, Object> whereMap);
/**
* 获取所有
* @return
*/
@DataSource(DataSourceType.Slave)
public List<UserBasis> getList();
}
到这里读写分离和主从动态切换数据源的配置以及使用就完整了。接下来思考:我们是不是有时候项目都是要一主多从、多主多从?
一主多从、多主多从
转载于:https://www.cnblogs.com/zhanghaiyang/p/7212882.html
Spring学习总结(18)——Spring整合Mysql数据库一主多从、多主多从配置相关推荐
- spring boot整合MySQL数据库
spring boot整合MySQL数据库 spring boot整合MySQL数据库可以说很简单,只需要添加MySQL依赖和在配置文件中添加数据库配置信息,利用spring-boot-starter ...
- 计算机毕业设计Java移动学习网站(系统+源码+mysql数据库+Lw文档)
计算机毕业设计Java移动学习网站(系统+源码+mysql数据库+Lw文档) 计算机毕业设计Java移动学习网站(系统+源码+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S架构 开发语 ...
- java计算机毕业设计紫陶文化传播与学习交流网站源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计紫陶文化传播与学习交流网站源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计紫陶文化传播与学习交流网站源码+mysql数据库+系统+lw文档+部署 本源码技术栈 ...
- 计算机毕业设计Java计算机类在线学习管理系统(源码+系统+mysql数据库+lw文档)
计算机毕业设计Java计算机类在线学习管理系统(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java计算机类在线学习管理系统(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目 ...
- java计算机毕业设计海南自贸港知识学习与测试源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计海南自贸港知识学习与测试源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计海南自贸港知识学习与测试源码+mysql数据库+系统+lw文档+部署 本源码技术栈: ...
- java计算机毕业设计计算机公共课程学习资源管理系统源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计计算机公共课程学习资源管理系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计计算机公共课程学习资源管理系统源码+mysql数据库+系统+lw文档+部署 本源 ...
- 计算机毕业设计Java《EE开发技术》课程学习网站(源码+系统+mysql数据库+lw文档)
计算机毕业设计Java<EE开发技术>课程学习网站(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java<EE开发技术>课程学习网站(源码+系统+mysql数据库+ ...
- 计算机毕业设计Java计算机类专业考研交流学习平台(源码+系统+mysql数据库+lw文档)
计算机毕业设计Java计算机类专业考研交流学习平台(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java计算机类专业考研交流学习平台(源码+系统+mysql数据库+lw文档) 本源码技术栈 ...
- Mysql学习总结(41)——MySql数据库基本语句再体会
1.数据定义语言(DDL):定义和管理数据对象,比如建立数据库.数据表 数据操作语言(DML):用于操作数据库对象中的包含的数据. 数据查询语言(DQL):用于查询数据库对象中包含的数据,能够对表进行 ...
最新文章
- Redis系列四:redis支持的数据类型
- [洛谷1390]公约数的和
- java横线_知识点:java一些方法会有横线?以Date 过期方法为例
- 如何在 Windows Server 中配置权威时间服务器
- win mysql 2003错误_windows MySql 报1067错误 2003错误
- Python:正则表达式
- 个人推动团队项目进展_推动者和关守者对开发团队的价值
- Python闭包与javascript闭包比较
- python如何调用xpath_Python案例:使用XPath的爬虫
- 优质淘宝产品描述页模板框架PSD分层模板,美工实用素材
- UWP入门一 7天酒店客户端源码及说明
- 学习 shell —— 参数的解析:$0/1/2、$#、 $@、$?(set -e)
- AOP处理事务静、动态代理(jdk方法)
- linux安装yum报错Unable to locate package yum
- P2P技术体系结构与分类
- js判断对象上是否含有某个属性
- heka 输出到mysql_HEKA-系统介绍
- 基于时延估计的动力型下肢假肢分段控制策略研究
- 计算机如何去除桌面名称阴影,去除桌面图标阴影 - 桌面图标有蓝色阴影怎么去掉 - 安全专题...
- 品味kettle--(一)用eclipse 搭建源码
热门文章
- LeetCode Reverse Linked List II 反置链表2
- Redhate5.4下Oracle 11g安装
- 站长们 技术不是你生存的全部
- mvd没什么每次参数双都多一个逗号_学服装设计后,家里多了哪些奇怪又可爱的宝藏物品?...
- Python练习2-基本聊天程序-虚拟茶会话
- hdu1501 记忆化搜索
- 【Linux 内核】编译 Linux 内核 ① ( 下载指定版本的 Linux 内核源码 | Linux 内核版本号含义 | 主版本号 | 次版本号 | 小版本号 | 稳定版本 )
- 【数字信号处理】线性时不变系统 LTI “ 输入 “ 与 “ 输出 “ 之间的关系 ( 周期性分析 | 卷积运算规律 | 交换律 | 结合律 | 分配率 | 冲击不变性 )
- 【C 语言】二级指针 内存模型图 ( 指针数组 | 二维数组 | 自定义二级指针内存 )
- GeoServer 常见问题总结