自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

'

  • 博客(1)
  • 收藏
  • 关注

原创 声明式事务失效的几种场景

Spring的事务是通过数据库连接来创建,数据库连接底层是放在ThreadLocal,在单线程下,相同数据源的数据库连接是同一个。而多线程场景下,拿到的数据库连接并不一样,会导致获取到不同的事务,没办法进行统一回滚。事务底层使用的是基于 AOP的代理模式,代理模式生成的代理类无法重写被 final、static 修饰的方法,也无法访问private方法。如没有事务声明的方法a,调用了有事务声明的方法b,这时调用方法b的不是代理对象,而是普通对象,这就导致了方法b的事务失效。可以使用编程式事务进行手动处理。

2024-01-17 10:03:35 539 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除