spring多数据源+事物管理
来源:互联网 发布:学生成绩管理系统软件 编辑:程序博客网 时间:2024/06/06 21:03
原文地址:http://blog.csdn.net/liuxiao723846/article/details/43526549
1、使用了spring的aop思想,实现了动态数据源的切换。
2、spring的事务管理,是基于数据源的,所以如果要实现动态数据源切换,而且在同一个数据源中保证事务是起作用的话,就需要注意二者的顺序问题,即:在事物起作用之前就要把数据源切换回来。
举一个例子:web开发常见是三层结构:controller、service、dao。一般事务都会在service层加的,如果使用spring的声明式事物管理,那么在调用service层代码之前,spring会通过aop的方式动态添加事务控制代码,所以如果要想保证事物是有效的,那么必须spring添加事务之前把数据源动态切换过来,也就是动态切换数据源的aop要至少在service上添加,而且要在spring声明式事物aop之前添加。
最简单的方式是,把动态切换数据源的aop加到controller层,这样在controller层里面就可以确定下来数据源了。不过,这样有一个缺点就是,每一个controller绑定了一个数据源,不灵活。对于这种:一个请求,需要使用两个以上数据源中的数据完成的业务,就无法实现了。
针对上面的这种问题,可以考虑把动态切换数据源的aop放到service层,但要注意一定要在事务aop之前来完成。这样,对于一个需要多个数据源数据的请求,我们只需要在controller里面注入多个service实现即可。但这种做法的问题在于,controller层里面会涉及到一些不必要的业务代码,例如:合并两个数据源中的list...
针对上面的问题,可以再考虑一种方案,就是把事务控制到dao层,然后在service层里面动态切换数据源。
其他有参考价值的文章:
http://blog.csdn.net/rj042/article/details/21654627
http://blog.csdn.net/wangpeng047/article/details/8866239
http://blog.csdn.net/wangpeng047/article/details/43450189
http://download.csdn.net/download/wangpeng047/8419953
http://uule.iteye.com/blog/2126533
- spring多数据源+事物管理
- spring多数据源+事物管理
- spring 多数据源 事物
- 【DB】【Spring】多数据源事物配置
- Spring JPA 使用EntityManager时如何配置多数据源的事物管理
- Spring多数据源管理
- Spring多数据源管理
- Spring结合hibernate和jdbcTemplate多数据源事物问题
- 多数据源事物处理
- 同一节点多数据源的事物管理(配置多个事物实现)
- Spring JDBC 多数据源管理
- Spring多数据源管理源码分析
- spring 事物控制---多数据源与 atomikos 分布式事务配置(接之前未完成的部分)
- Spring配置多数据源在配置事物后无效完美解决方案
- spring多数据源
- spring 多数据源
- spring 多数据源
- spring多数据源
- 招聘会有感
- ViewGroup和View的事件传递原理
- 编程之美-一摞烙饼的排序方法整理
- CoordinatorLayout简述
- 哈理工院赛训练题目 Kid-排列
- spring多数据源+事物管理
- soj 2111: littleken bg
- ReactNative基础教程
- Struts 2读书笔记-----使用Struts 2的输入校验
- HDU 1813 Escape from Tetris
- hdu 5543
- activity之间的跳转与数据传递
- BZOJ 4292: [PA2015]Równanie(转换枚举)
- CSS Master, Sitepoint 2015读书笔记(印象比较深的几点:CSS优先级3元组表示法,多列及flex,Transforms)