事务-记录工作中遇到的问题

记录因事务导致的问题

起因

​ 某微服务电商项目,跨服务操作订单完成时,事务不生效。(分布式事务借助柔性事务的框架-hmily)

原因

​ Spring的事务只对代理类的调用生效,若在同类,方法内直接调用相当于使用被代理的对象进行调用,事务注解不生效

​ 不生效的原因是AOP导致,JDK动态代理和CGLIB责任链的调用方式引起同方法内调用不生效,在重组字节码是,无法判断嵌套方法内的方法是否有注解

解决方案

​ 拆分方法,用另外的包装类取代原有的调用逻辑

参考文献

posted @ 2021-12-19 13:56  lifelikeplay  阅读(25)  评论(0编辑  收藏  举报