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

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

如下 f1 和f2 属于同一个类

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

    }
    
   @Transactional
   public f2() {
        
      
  

    }

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

  1. 在同一类的非切面方法中获取代理对象,‌确保切面可以正常生效。‌
  2. 在不同类中,‌非事务方法调用事务方法时,‌确保事务生效。‌
  3. 在同一个类中,‌事务方法调用非事务方法时,‌事务仍然具有传播性,‌确保事务生效。‌
相关推荐
草履虫建模36 分钟前
力扣算法 1768. 交替合并字符串
java·开发语言·算法·leetcode·职场和发展·idea·基础
fen_fen3 小时前
Oracle建表语句示例
数据库·oracle
qq_297574673 小时前
【实战教程】SpringBoot 实现多文件批量下载并打包为 ZIP 压缩包
java·spring boot·后端
老毛肚3 小时前
MyBatis插件原理及Spring集成
java·spring·mybatis
学嵌入式的小杨同学3 小时前
【Linux 封神之路】信号编程全解析:从信号基础到 MP3 播放器实战(含核心 API 与避坑指南)
java·linux·c语言·开发语言·vscode·vim·ux
lang201509283 小时前
JSR-340 :高性能Web开发新标准
java·前端·servlet
Re.不晚3 小时前
Java入门17——异常
java·开发语言
缘空如是4 小时前
基础工具包之JSON 工厂类
java·json·json切换
追逐梦想的张小年4 小时前
JUC编程04
java·idea
好家伙VCC4 小时前
### WebRTC技术:实时通信的革新与实现####webRTC(Web Real-TimeComm
java·前端·python·webrtc