返回顶部
首页 > 资讯 > 精选 >关于Spring3 + Mybatis3整合时多数据源动态切换的问题
  • 481
分享到

关于Spring3 + Mybatis3整合时多数据源动态切换的问题

springmybatis整合 2023-05-31 15:05:24 481人浏览 泡泡鱼
摘要

以前的项目经历中,基本上都是spring + hibernate + Spring JDBC这种组合用的多。至于mybatis,也就这个项目才开始试用,闲话不多说,进入正题。以前的这种框架组合中,动态数据源切换可谓已经非常成熟了,网上也有非

以前的项目经历中,基本上都是spring + hibernate + Spring JDBC这种组合用的多。至于mybatis,也就这个项目才开始试用,闲话不多说,进入正题。

以前的这种框架组合中,动态数据源切换可谓已经非常成熟了,网上也有非常多的博客介绍,都是继承AbstractRoutingDataSource,重写determineCurrentLookupKey()方法。具体做法就不在此废话了。

所以当项目中碰到这个问题,我几乎想都没有想,就采用了这种做法,但是一测试,一点反应都没有。当时觉得不可能,于是断点,加log调试,发现determineCurrentLookupKey()根本没有调用。 

为什么列? 这不可能啊。静下心来,仔细想想,才想到一个关键的问题: Mybatis整合Spring,而不是Spring整合的Mybatis! 直觉告诉我,问题就出在这里。

于是花时间去研究一下mybatis-spring.jar 这个包,发现有sqlSession这东西,很本能的就注意到了这一块,然后大致看一下他的一些实现类。于是就发现了他的实现类里面有一个内部类SqlSessionInterceptor(研究过程就不多说了,毕竟是个痛苦的过程)

好吧,这个类的作用列,就是产生sessionProxy。关键代码如下

final SqlSession sqlSession = getSqlSession(  SqlSessionTemplate.this.sqlSessionFactory,  SqlSessionTemplate.this.executorType,  SqlSessionTemplate.this.exceptionTranslator); 

--结束END--

本文标题: 关于Spring3 + Mybatis3整合时多数据源动态切换的问题

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

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

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

  • 微信公众号

  • 商务合作