spring 同类方法调用事务失效解决办法

可以使用AopContext.currentProxy()获取到当前类的代理对象,然后再用代理对象进行调用本类中的方法

如下 f1 和f2 属于同一个类

复制代码
    public voidf1() {
        
        ((本类名)AopContext.currentProxy()).f2();
      
  

    }
    
   @Transactional
   public f2() {
        
      
  

    }

AopContext.currentProxy()方法的使用场景还包括:‌

  1. 在同一类的非切面方法中获取代理对象,‌确保切面可以正常生效。‌
  2. 在不同类中,‌非事务方法调用事务方法时,‌确保事务生效。‌
  3. 在同一个类中,‌事务方法调用非事务方法时,‌事务仍然具有传播性,‌确保事务生效。‌
相关推荐
要开心吖ZSH12 小时前
零基础入门 Spring WebFlux 与 Project Reactor:从小白到顿悟
java·响应式编程·spring webflux
智塑未来12 小时前
装备制造行业设计制造一体化痛点攻克与实战经验总结
java·开发语言·制造
东风破13712 小时前
DM8事务管理,多版本并发控制,及达梦开发接口
数据库·dm达梦数据库
Devin~Y13 小时前
电商AIGC智能客服面试:JVM调优、Spring Cloud微服务、Redis缓存、Kafka消息、K8s观测与RAG落地
java·jvm·spring boot·redis·spring cloud·kafka·kubernetes
Ai马猴子13 小时前
企业定制专属模型,gpt-5.4-cdx高效适配,DMXAPI 安全合规
java·gpt·安全
城数派13 小时前
省市县三级的逐年植被覆盖度(FVC)数据
数据库·arcgis·信息可视化·数据分析
星晨羽13 小时前
Java通过FTP协议实现文件上传下载
java·开发语言
逸Y 仙X13 小时前
文章三十:Elasticsearch SQL实战案例
java·大数据·sql·elasticsearch·搜索引擎·全文检索
Volunteer Technology13 小时前
SpringAi Chat Memory 聊天记忆(五)
人工智能·spring
小则又沐风a13 小时前
初步了解进程的概念
java·linux·服务器·前端