ssm动态切换数据源

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

posted on 2018-03-06 18:21  xiaojiayu0011  阅读(1295)  评论(0)    收藏  举报

导航