简介
相信大家有配置过多数据源,或者即将配置多数据的朋友们,会发现网上大概有以下几种方案:
- 1.使用AOP切片进行动态数据源切换
- 2.使用
MapperScan
的basePackages
配置不同的mapper目录以及template - 3.数据库代理中间件
这两种方式都能实现多数据源但是各有缺点: - 1.无法实现多数据源
XA
事物(全局事物管理|JTA
)这个缺点非常致命,配了多数据源但是没有全局事物那有什么用纯属坑爹,网上还有很多帖子教程使用这种虽然配置稍微简单但是如果你要用到全局事物根本没有用。 - 2.这种方式是可以结合
JTA
实现全局事物,目前本人在业务中也采用这种方式在线上跑,经过多次调试以及线上运维有一点问题不可置疑就是麻烦!你会遇到需要整合druid
连接池,还有全局事物如果你找网上帖子跟着流程走配完多多少少可能还是有些小问题。 - 3.数据源代理可能是很好的一种方式,大多巨头公司都是采用这种方式,而且开发业务人员不用再考虑这些问题,使用代理进行切割以及连接池等都能实现,但是有一个很尴尬的问题就是开源的不好用,因为很多不适合自身的业务,而且自己开发也不现实成本过高。
这时候我在考虑一个问题,为什么不可以像其他语言框架一样直接引入一个依赖在yml
文件中配置就可以了呢,所有就有了现在的最简方案。
源码地址
希望大家可以star支持一下,后续还会加入其它依赖的简易整合。
https://github.com/louislivi/fastdep
开始
版本:
springboot:2.0+
引入依赖:
Maven
<dependency>
<groupId>com.louislivi.fastdep</groupId>
<artifactId>fastdep-datasource</artifactId>
<version>1.0.0</