浅谈对Spring中的事务回滚的理解及@Transactional注解的用法

事务回滚

可以简单理解为,在sping中发生异常(默认为RuntimeException)时,将某个数据库或某个对象恢复为对其进行操作之前的状态即为事务回滚。一言以蔽之,要么成功(操作成功),要么失败(发生异常,事务回滚,操作失败)。

 

 

@Transational 的使用

  • 应用于某个方法之上,直接注解在方法上即可。

  • 当加在类上,则表示对该类里面所有的方法都应用相同配置的事务。

############注意#############

/*

  •      @Transactional 用于不同场合时效果不同,用于service层时,只是对于抛出异常(RuntimeException)时进行事务的回滚,而当用于单元测试类中时,事情做完就马上回滚了,不需要抛出异常。

 

  • spring中的默认情况下时运行异常(RuntimeException)才会进行事务的回滚***要让Exception异常也进行回滚操作,在调用该方法前加上: @Transactional(rollbackFor = Exception.class)

 

 

  • @Transactional   只有在使用了该注解的方法被外界所调用时有效,而当被同类中未使用该注解的方法调用时无效。原因和springAOP的动态代理机制有关。有关动态代理的知识可以参考下这篇博客https://www.cnblogs.com/xiaoluo501395377/p/3383130.html

*/

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

daimashiren

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值