大多数项目只需要一个事务管理器。然而,有些项目为了提高效率、或者有多个完全不同又不相干的数据源,最好用多个事务管理器。机智的Spring的Transactional管理已经考虑到了这一点,首先分别定义多个transactional manager,并为qualifier属性指定不同的值;然后在需要使用@Transactional注解的时候指定TransactionManager的qualifier属性值或者直接使用bean名称。配置和代码使用的例子:

  1. <tx:annotation-driven/>
  2. <bean id="transactionManager1" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  3. <property name="dataSource" ref="datasource1"></property>
  4. <qualifier value="datasource1Tx"/>
  5. </bean>
  6. <bean id="transactionManager2" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  7. <property name="dataSource" ref="datasource2"></property>
  8. <qualifier value="datasource2Tx"/>
  9. </bean>
  1. public class TransactionalService {
  2. @Transactional("datasource1Tx")
  3. public void setSomethingInDatasource1() { ... }
  4. @Transactional("datasource2Tx")
  5. public void doSomethingInDatasource2() { ... }
  6. }
或者,直接使用transactin manager 的bean名字:

@Transactional("transactionManager1")
如果是使用@Transactional(),相当于使用缺省的transaction mananger名字,即:@Transactional("transactionManager")
转自:http://blog.csdn.net/clementad/article/details/47275227

最新文章

  1. javaee学习之servlet
  2. [theWord] 一种英文字典的基类设计
  3. windows Android 开发环境
  4. RCP学习笔记
  5. centos 6.5上部署jetty
  6. Hbase深入学习(二) 安装hbase
  7. jquery ajax 参数可以序列化
  8. C++模板:读入优化
  9. 数据库NULL和 ‘’ 区别
  10. Linux 用键盘操作窗口
  11. [译文]Domain Driven Design Reference(四)—— 柔性设计
  12. 震惊!计算机连0.3+0.6都算不对?浅谈IEEE754浮点数算数标准
  13. CDI Features
  14. java代码之美(4)---guava之Immutable(不可变)集合
  15. GUID获取16位19位22位的唯一字符串
  16. 抽象类练习(Job和TestJob)
  17. 计算 $\dps{\int_0^\infty\frac{\sin^2x}{x^2}dx=\frac{\pi}{2}}$
  18. selenium调用webdriver异常
  19. JQuery Dom的基本操作
  20. Python---高级函数map, filter, zip, enumerate等的用法

热门文章

  1. Redis常用数据类型底层数据结构分析
  2. jquery滚动到指定位置
  3. 51 nod 1127最短的包含字符串(尺取法)
  4. k8s删除节点后再重新添加进去(踩坑)
  5. ABP .net Core MQTT+signalr通讯
  6. python环境下安装virtualenv,virtualenvwrapper
  7. leetcode-easy-dynamic-53 Maximum Subarray
  8. Linux_RHEL7_YUM
  9. Selenium 2自动化测试实战16(多窗口切换)
  10. python中sys.argv使用