Spring动态添加使用数据源 你的sessionfactory 还是最开始那个。你新加的spring配置文件只配置了一个数据源,sessionFactory没变。你需要创建不同的sessionFactory。根据数据源来创建。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 sessionFactory没有改变,需要在生成一个sessionFactory,多数据源还要考虑事物的问题,tomcat对多数据源事物支持不是太好 你说的对,但是总是创建sessionFactory也不是一个 好办法呀 这个问题已经解决了,请看我的这篇文章,有问题共同学习进步 http://blog.csdn.net/qilin18/article/details/17614005 又看到一个在spring里使用ThreadLocal作为路由数据源实现方式的案例。这种实现在普通情况下确实能通过取当前线程实现数据源的定位,但是如果应用存在使用spring事务的情况,这么做就是在挖地雷。因为spring推荐的scope prototype模式下bean都是单例,并发的时候依靠spring内部的ThreadLocal切换各个线程的参数,而spring的事务机制会针对每一个事务新开一个线程,最后导致在有事务的情况下,spring内部的事务线程和自定义路由使用的数据源定位线程不一致,数据源定位失败。表现出来的现象就是,一个有spring事务的servcie里,无法调用两个数据源,无论怎么配置都会导致数据源被路由到同一个线程。 spring事务里没有解决这个问题,spring保护了内部的ThrealLocal,如果要基于spring事务,我只能想到连scope的线程实现都重写一遍,这对一般人来说是不可能的。所以我的解决办法是不采用spring事务,换用自己控制的事务,我是换用的jta事务。 用http大文件下载问题(20M以上) 在线等! [重新建帖]求助C#转JAVA Java怎样删除Web服务器上的图片 页面之间在传递参数的时候用什么式加密解密比较好啊? java.lang.IllegalArgumentException: argument type mismatch 处理 采用什么技术进行分页显示数据好?请高手出招! 帮忙了各位 文件上传到数据库出错,请您帮忙!!! 关于用javaBean来取值的问题??? 在sql语句中使用distinct出错? apache中不能访问页面的问题 请问怎用三个表组成一颗Ztree呢
这种实现在普通情况下确实能通过取当前线程实现数据源的定位,但是如果应用存在使用spring事务的情况,这么做就是在挖地雷。
因为spring推荐的scope prototype模式下bean都是单例,并发的时候依靠spring内部的ThreadLocal切换各个线程的参数,而spring的事务机制会针对每一个事务新开一个线程,最后导致在有事务的情况下,spring内部的事务线程和自定义路由使用的数据源定位线程不一致,数据源定位失败。
表现出来的现象就是,一个有spring事务的servcie里,无法调用两个数据源,无论怎么配置都会导致数据源被路由到同一个线程。
所以我的解决办法是不采用spring事务,换用自己控制的事务,我是换用的jta事务。