1.由于项目开发需要动态切换多个数据源,查阅了好多博客,也尝试了多种方法都不是很理想,因此对总结出一套自己的数据源切换方法。
2.项目使用的连接池是阿里的DruidDataSource,直接先上配置信息,注意红色框的信息,当前为第一个数据源,同理再增加一个ds_two的数据源配置(需要对应修改数据库或者url连接信息)
3.然后再配置好的对应的数据源key值,为后续切换数据源做准备,其他的配置
4.spring的通用配置,需要注意的是pojo和mapper扫描时的包路径应涵盖其他子项目的包路径
5.接下来需要写自己的aop切入方法,用于spring启动时就进入对应的数据源扫描方法
6.书写自己注解类,对注解进行扫描的类,完成数据源的赋值
7.还需要继承Spring的AbstractRoutingDataSource,重写对应的数据源路由方法,至此基本完成了数据源的动态切换
8.接下来介绍如何使用了,由于我在DataSource上增加了注解可继承@Inherited,因此我们只需要在各子项目的Service父类上增加对应的注解,然后再在自己的Service类继承对应的父类即可完成数据源切换。
9.至此基本可完成对数据源的切换,详细的项目代码已经放到github上,需要的同学可以去下载,觉得还行的话,就给个star吧。
github地址:https://github.com/linzx2015/SSM
git clone地址:https://github.com/linzx2015/SSM.git