站长微信:Name-Tornado 大家一起学习 共同进步 每赚网-稳定更新互联网项目 永久地址 mzw.ljf666.com 项目免费送 收藏不迷路

Spring事务的失效场景

660次阅读
没有评论

About Me

欢迎各位读者访问,大家一起学习。

优秀是一种习惯♡♡♡

做更好的自己!

本人见识有限,写到博客难免有错误或疏忽的地方,还望各位大佬多多指点,在此表示感激不尽。♡♡♡


Spring事务的失效场景:

Spring事务本质就是数据库对事务的支持,没有数据库事务的支持,Spring是无法提供事务功能的。Spring事务有声明式事务,编程式事务。Spring支持声明式事务,也就是使用注解的方式,它使用@Transactional注解在方法上表明该方法需要事务支持。Spring事务底层是基于AOP的思想,AOP底层使用的是动态代理,动态代理又分为JDK动态代理和cglib动态代理。因为JDK是代理接口,所以私有的方法不会存在接口当中。所以不会被拦截。

  • 失效的场景
  1. 方法使用final修饰
  2. 方法访问权限问题:事务生效只支持public
  3. 方法内部的调用,因为同一个对象内调用时没有使用代理。没有被AOP事务管理器控制
  4. 没有被Spring管理,可能是开发过程中忘记@Service,@Controller等这些注解没有写,导致。
  5. 多线程的情况下事务也会失效。
  6. 表不支持事务,MySQL5.5之前使用的是MyISAM存储引擎,Myisam不支持事务。
  7. 使用了try...catch也不支持事务,这种情况事务不会回滚,因为开发者捕获了异常没有抛出。也就是把异常吞掉了。

思维导图

Spring事务的失效场景

                                                      不要在最能吃苦的年纪选择了安逸!!!        --- Tornado♥

正文完
 
Tornado
版权声明:本站原创文章,由 Tornado 2022-04-05发表,共计636字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码