springboot+mysql多数据源的使用原理

在开发过程中,我们可能会使用到多数据源,比如项目与项目之间的对接(针对自家公司项目,但若是第三方公司,那是万万不通的),又比如数据库的数据量过大时等等。

那么动态多数据源的原理是什么呢?经过一番查阅资料结合实例发现它的原理就是通过Aop的原理在运行时获取对应的数据源,从而达到操作不同的数据库。

1:创建切换数据源的切面类: 切点是指定的自定义注解DataSource,这个注解起到了很重要的作用
在这里插入图片描述
该注解的作用是什么呢,就是返回一个值,这个值就是我们指定的哪个数据库类型。

看图一:自定义注解DataSource有四个注解,主要看target注解和Retention注解

在这里插入图片描述target注解:说明注解所修饰的对象范围;可用于类、接口、枚举、Annotation类型等。可以看到该注解有两个值 METHOD和TYPE

METHOD:用于描述方法 ;TYPE:用于描述类、接口,(METHOD在前,type在后,造成了优先级不同)
优先级:先方法,后类,如果方法覆盖了类上的数据源类型,以方法的为准。

Retention注解:该注解标识注解销毁时机,由图二看到它的值为RUNTIME运行时注解,很容易明白所标识的注解在运行时也存在,而我们需要动态获取数据源信息,所以DataSource注解必须在运行时存在

其实到这就已经很明白了,多数据源的使用原理,就不多说了。整理的有点乱,欢迎大家来指出其中不足,共同学习进步

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

博客胡

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值