-
Spring @Transactional 失效的 7 种典型场景:从扣款不回滚事故说起 + code review 检查清单
扣款接口失败时没回滚,代码里明明写了 @Transactional,事务怎么就没生效?这是 Spring 老手都不一定能一次答对的问题。这篇把团队踩过的七种典型失效场景全部整理出来 — 类内自调用、非 public 方法、checked exception、异常被吞、传播行为配错、多数据源、@Async 跨线程,每种给最小复现、根因、修法,以及一套能在 code review 阶段就拦住的 Arc…- 2
- 0
-
加个功能就启动失败:一次 Spring 循环依赖排查的复盘
老项目加个看似无害的新功能,启动就直接失败,报 BeanCurrentlyInCreationException。诡异的是项目里早有字段注入的循环依赖一直正常,这次构造器注入却炸了。几天彻底搞清:循环依赖、三级缓存、构造器注入为何解不开、AOP 代理、Spring Boot 2.6+ 默认禁止循环依赖、提取公共类与事件解耦。- 0
- 0
-
加了 @Transactional 却不回滚:一次 Spring 事务失效的复盘
下单接口订单写成功了,扣库存那步抛异常,事务却没回滚 —— 订单留下了,库存没扣。方法上明明写着 @Transactional。排查发现是类内部自调用绕过了 AOP 代理。几天事务专项治理:理解代理机制、修自调用、异常处理与 rollbackFor、方法可见性、多线程与事务传播行为、事务自检与监控。- 3
- 0
-
Spring 循环依赖踩坑:加一个 @Async 注解就启动失败的复盘
给一个老 service 加了个 @Async 注解,整个服务直接启动失败,报 unresolvable circular reference。两个 Bean 互相依赖好几年都没事,加个注解就崩。根因是 @Async 代理机制与 Spring 三级缓存解循环依赖的逻辑冲突。本文讲透三级缓存原理、@Async 为何冲突,以及重构消除循环、异步方法收拢、构造器注入等正确解法。- 0
- 0
-
Spring @Transactional 失效的 7 种真实场景 + 修法
标了 @Transactional 测试也好好的,生产却出现部分写入。本文 7 种事务失效场景:同类内部调用 / 非 public / 异常被吞 / checked exception / MyISAM / 多数据源 / Propagation 配错。每个附复现代码 + 3 种修法。- 0
- 0
Spring
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!





