切换多数据源的扩展

Blade 未结 1 1556

定义一个接口,接口其中一个参数用来切换不同的数据源,看了MP集成的动态数据源切换是加的注解 @DS("master"),注解默认值写的是数据源配置文件里面的值。这个和我想要达到的效果有点区别。

按照MP集成的这种思路切换动态数据源:

1、绑定接口参数和动态数据源映射关系。假如接口参数是 1,那么对应的数据源就是master,参数是2则对应slave。

2、我想问的是我如何根据接口参数不同动态修改注解的值,从而达到我的要求。


如上文所示,也就是说我调用了这个接口,传了参数2,我定义好的接口方法上的注解写的是 @DS("master"),这时候我想利用调用接口传过来的参数2,将注解值修改成slave改怎么弄?


1条回答
  • 2020-11-12 10:31

    @DS注解其实是上层封装,你去看一下对他生效的拦截器的代码,就可以知道,其实最底层是可以用代码来切换的,并不是说只有注解才能生效,具体可以看如下代码。

    image.png

    只要把mybatis-plus的动态数据源源码捋清楚,那么对你来说,通过参数动态切换数据源就是很简单的事情了

    3 讨论(0)
提交回复