iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >浅谈利用Spring的AbstractRoutingDataSource解决多数据源的问题
  • 558
分享到

浅谈利用Spring的AbstractRoutingDataSource解决多数据源的问题

springabstractroutingdatasourcedat 2023-05-31 07:05:06 558人浏览 八月长安
摘要

在互联网的服务端开发的时候,我们很经常要在一个项目中去调用不同的数据库。在这种情况下,必然要涉及到多数据源问题。那么,我们该如何解决多数据源问题呢?有没有一种方法来动态切换数据源呢?答案是有的。万能的spring已经给了我们解决方案——利用

互联网的服务端开发的时候,我们很经常要在一个项目中去调用不同的数据库。在这种情况下,必然要涉及到多数据源问题。那么,我们该如何解决多数据源问题呢?有没有一种方法来动态切换数据源呢?

答案是有的。万能的spring已经给了我们解决方案——利用AbstractRoutingDataSource。在 AbstractRoutingDataSource 类中,发现 getConnection() 方法,从名字上可以知道它是获得connection连接的。跟踪 getConnection() 方法, determineTargetDataSource() 就这么进入我们的视线,继续下去,我们发现了重点—— determineCurrentLookupKey() 。 determineCurrentLookupKey 方法是一个抽象方法,它的返回值就是我们要用到的数据源dataSource的key,然后根据这个key从 resolvedDataSources 这个map中取出dataSource,如果找不到就使用默认的dataSource。

知道了这些,我们就来用代码实现吧!以下的代码是基于Spring Boot,所以需要建立一个Spring Boot项目,然后引入spring-boot-starter-jdbc。项目中又有用到aop,肯定的,我们必须引入spring-boot-starter-aop。

接下来,我们需要建一个DynamicDataSource。

public class DynamicDataSourceextends AbstractRoutingDataSource{  @Override  protectedObjectdetermineCurrentLookupKey(){    String dataSourceName = DynamicDataSourceContextHolder.getDataSourceName();    return dataSourceName;  }}

--结束END--

本文标题: 浅谈利用Spring的AbstractRoutingDataSource解决多数据源的问题

本文链接: https://www.lsjlt.com/news/224270.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作