spring动态切换数据源

由于项目中需要用到多个数据库,以前的做法都是在库里面做database link,或者写接口调用,用起来非常不方便,看到网上很多资料,决定跟着配置一番。

首先,看到的是这篇文章

点击打开链接

还有就是

点击打开链接

两篇文章写得非常好,写得非常详细,首先得有一个类用来切换数据库,由ThreadLocal作为数据源的设置与获取,然后又写一个类来继承AbstractRoutingDataSource重写

determineCurrentLookupKey方法,目的是为了标识当前的数据源,让spring切换到这个数据源上。

接着就可以配置多个数据源了。关键是要给之前写的那个类配置bean,指定lookupKey和与之对应的数据源,再来一个默认的数据源。

这样下来就可以切换数据源了。但是还不够方便,不够直观。

第二篇文章就有说到了,可以在方法或类上面以注解的方式进行切换,而且顺便做了标记,一目了然。

所以先自定义一个注解,文章里面是用String型的,而我是用枚举型的,更加清楚直观。

接着重头戏来了,就是采用aop切面拦截所有的注解(前面定义的),提取数据源标识,然后进行数据源的切换,这个地方目前还不太明白。。。

最后在spring配置文件配置拦截规则,我的是拦截service下的所有类、所有方法

这一块还是得再琢磨琢磨……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值