博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring的声明式事务
阅读量:6209 次
发布时间:2019-06-21

本文共 1266 字,大约阅读时间需要 4 分钟。

关于事务配置的详解:Spring事务配置的五种方式

事务的传播特性

在我们用SSH开发项目的时候,我们一般都是将事务设置在Service层那么当我们调用Service层的一个方法的时候它能够保证我们的这个方法中执行的所有的对数据库的更新操作保持在一个事务中,在事务层里面调用的这些方法要么全部成功,要么全部失败。那么事务的传播特性也是从这里说起的。

如果你在你的Service层的这个方法中,除了调用了Dao层的方法之外,还调用了本类的其他的Service方法,那么在调用其他的Service方法的时候,这个事务是怎么规定的呢,我必须保证我在我方法里掉用的这个方法与我本身的方法处在同一个事务中,否则如果保证事物的一致性。事务的传播特性就是解决这个问题的,“事务是会传播的”在Spring中有针对传播特性的多种配置我们大多数情况下只用其中的一种:PROPGATION_REQUIRED:这个配置项的意思是说当我调用service层的方法的时候开启一个事务(具体调用那一层的方法开始创建事务,要看你的aop的配置),那么在调用这个service层里面的其他的方法的时候,如果当前方法产生了事务就用当前方法产生的事务,否则就创建一个新的事务。这个工作使由Spring来帮助我们完成的。
以前没有Spring帮助我们完成事务的时候我们必须自己手动的控制事务,例如当我们项目中仅仅使用hibernate,而没有集成进spring的时候,我们在一个service层中调用其他的业务逻辑方法,为了保证事物必须也要把当前的hibernate session传递到下一个方法中,或者采用ThreadLocal的方法,将session传递给下一个方法,其实都是一个目的。现在这个工作由spring来帮助我们完成,就可以让我们更加的专注于我们的业务逻辑。而不用去关心事务的问题。

默认情况下当发生RuntimeException的情况下,事务才会回滚,所以要注意一下如果你在程序发生错误的情况下,有自己的异常处理机制定义自己的Exception,必须从RuntimeException类继承这样事务才会回滚

配置@Transactional(rollbackFor=Exception.class)

即使是抛出的是非运行时异常也会回滚

参考文章:

使用spring声明式事务的几个步骤:

       1. applicationContext.xml中进行配置

  
 
  
   
 
  
  
  
 
  
   
    
   
   
   
   
   
   
  
 

 

本文出自 “” 博客,请务必保留此出处

转载地址:http://kakja.baihongyu.com/

你可能感兴趣的文章
菜鸟怎样快速的学习微信小程序
查看>>
面试分享:专科半年经验面试阿里前端P6+总结(附面试真题及答案)
查看>>
JVM知识点——其他知识梳理
查看>>
FIBOS周报
查看>>
Yii2 事务
查看>>
Beetl开源那些事3
查看>>
我的友情链接
查看>>
Linux 中字符设备的注册
查看>>
编程题:枚举元素的判断比较,功能:枚举变量作为循环控制变量
查看>>
链栈的相关操作
查看>>
Hyper-V 2016 系列教程11 太仓民政局 微软 Hyper-V 虚拟化解决方案介绍 采用的是华为系列服务器...
查看>>
Nutch2.2.1介绍及使用
查看>>
2013-6-23替换的公告
查看>>
Linux下把静态库编译进PHP的方法
查看>>
hello
查看>>
dns
查看>>
我的友情链接
查看>>
zimbra明文密码登陆
查看>>
nginx+ssl 配置
查看>>
从cpanel面板后台如何上传wordpress等CMS模版程序【演示版】
查看>>