工程里面会遇到mysql数据读写分离,跑批程序可以从slave(读)节点,拉取数据,系统网站操作master(写)节点,下面是工程搭建环境
版本 : jdk 1.8
idea:2019.1
mysql:8.0.12
druid数据连接池:1.0.28
tk.mybatis:4.0.1
springboot 2.0.3.RELEASE
新建工程和导入在此省略。
工程目录结构如下:
工程配置看下druid配置多数据源代码
配置两个数据源把多数据设置在dynamicDataSource,默认读取master数据库
设置数据源数据源配置完毕,现在需要在Service中执行方法之前选择哪个数据库,这个时候想到是spring aop技术,在每个方法之前通过注解来标识,具体如下:
aop配置Service实现:
实现方法以上是多数据源配置,这里有一点强调,tkmapper 中默认自带方法是不能实现多数据源切换,例如:Mapper.selectAll() 等 方法都不行
项目运行结果
master数据库表中数据
master数据库项目访问master地址http://127.0.0.1:8082/listMaster
master结果slave数据库表中数据
slave表中数据项目访问slave 地址http://127.0.0.1:8082/listSlave
slave结果收工!!
网友评论