Spring 事务管理问题
来源:互联网 发布:涉密软件开发资质 编辑:程序博客网 时间:2024/06/06 18:09
在进行spring事务控制问题时,经常会碰到将事务加载到 service层,至于为什么要加载到这一层却没有弄明白?
下面讲讲个人针对事务的理解:
1、spring什么时候会提交事务,什么时候会回滚事务。
spring事务处理时,会针对事务层事务层方法返回时进行检查,如果检查到有异常抛出,spring将回滚该事物,如果没有异常抛出将会提交事务。
2、事务加载到DAO层,针对系统的影响。
DAO层是针对数据库操作的一层,一般来说单独的DAO只会针对某个实例进行操作,如果事务加载到该层,可以保证针对该表的事务保持一致。
而一次业务处理一般会包含多个表的操作,可能会调用到多个DAO,如果其中某一个出错,将会影响到事务的一致性。
3、事务加载到view层,即action层。
针对事务的处理,如果在业务处理过程中,需要抛出异常(回滚事务),
如果在action层捕获异常,不再抛出异常的情况下,spring事务管理会认为该次处理过程中没有异常抛出,将会提交该事物,因此异常前的内容将会被提交,不能保证事务的一致性。
如果不捕获异常,将异常抛出,spring事务管理将会回滚该事物,针对系统数据不会有影响,但是会将界面直接抛到view层,影响界面展示。
因此,如果事务加载到action层,将无法对业务异常等处理。
以上内容仅个人理解,可能有出入,请各位大神指出本人理解是否正确。
阅读全文
1 0
- spring的事务管理问题
- Spring事务管理配置问题
- Spring 事务管理问题
- spring注解实现事务管理问题
- SSH spring事务管理不回滚问题
- 开发问题一:spring的事务管理问题
- SSH整合,spring事务管理不回滚问题
- Spring注解配置事务管理——问题
- Spring JDBC-事务管理中的多线程问题
- 事务管理之Spring事务管理
- Spring事务管理
- spring事务管理
- Spring事务管理
- Spring事务管理
- Spring事务管理
- Spring事务管理
- Spring事务管理
- Spring 事务管理
- Spring Boot集成redis做数据缓存
- svn和git 配置忽略文件
- Python自动上京东抢手机
- JS代码放在head和body中的区别分析
- 多用户配置
- Spring 事务管理问题
- 括号配对问题
- 删除链表的重复结点
- 彻底理解Python中的yield
- 一道并发和锁的golang面试题
- win Go 语言的安装和环境变量设置
- Machine learning Convolusional Neural Network
- 傻子能看懂的并查集入门讲解
- SVN的代码提交