Java 后台开发Java 开发程序员

SSM项目多数据源切换

2017-10-12  本文已影响137人  Zxlin2015

1.由于项目开发需要动态切换多个数据源,查阅了好多博客,也尝试了多种方法都不是很理想,因此对总结出一套自己的数据源切换方法。

 2.项目使用的连接池是阿里的DruidDataSource,直接先上配置信息,注意红色框的信息,当前为第一个数据源,同理再增加一个ds_two的数据源配置(需要对应修改数据库或者url连接信息)

ds_one数据源 ds_two数据源

3.然后再配置好的对应的数据源key值,为后续切换数据源做准备,其他的配置

数据源key配置

4.spring的通用配置,需要注意的是pojo和mapper扫描时的包路径应涵盖其他子项目的包路径

spring通用配置

5.接下来需要写自己的aop切入方法,用于spring启动时就进入对应的数据源扫描方法

aop切入方法

6.书写自己注解类,对注解进行扫描的类,完成数据源的赋值

通过切入方法,完成数据源赋值

7.还需要继承Spring的AbstractRoutingDataSource,重写对应的数据源路由方法,至此基本完成了数据源的动态切换

交给spring进行数据源路由

8.接下来介绍如何使用了,由于我在DataSource上增加了注解可继承@Inherited,因此我们只需要在各子项目的Service父类上增加对应的注解,然后再在自己的Service类继承对应的父类即可完成数据源切换。

绑定ds_one数据源 绑定ds_two数据源 此处会直接使用ds_one作为数据源了

9.至此基本可完成对数据源的切换,详细的项目代码已经放到github上,需要的同学可以去下载,觉得还行的话,就给个star吧。

github地址:https://github.com/linzx2015/SSM

git clone地址:https://github.com/linzx2015/SSM.git

上一篇下一篇

猜你喜欢

热点阅读