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

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

如下 f1 和f2 属于同一个类

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

    }
    
   @Transactional
   public f2() {
        
      
  

    }

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

  1. 在同一类的非切面方法中获取代理对象,‌确保切面可以正常生效。‌
  2. 在不同类中,‌非事务方法调用事务方法时,‌确保事务生效。‌
  3. 在同一个类中,‌事务方法调用非事务方法时,‌事务仍然具有传播性,‌确保事务生效。‌
相关推荐
Java成神之路-几秒前
Spring AOP 注解开发实战:无侵入式功能增强从入门到精通(Spring系列7)
spring
仍然.2 分钟前
多线程---阻塞队列收尾和线程池
java·开发语言·算法
TDengine (老段)6 分钟前
TDengine IDMP 可视化 —— 饼图
大数据·数据库·人工智能·物联网·时序数据库·tdengine·涛思数据
认真的薛薛7 分钟前
GPU运维:vllm启动大模型参数解析
运维·数据库·vllm
鱼鳞_21 分钟前
Java学习笔记_Day22
java·笔记·学习
刘~浪地球25 分钟前
Redis 从入门到精通(九):事务详解
数据库·redis·缓存
熊文豪37 分钟前
当系统在后台偷偷“记账“:KES 性能观测体系深度解析
linux·运维·服务器·数据库
__土块__42 分钟前
一次电商秒杀系统架构评审:从本地锁到分布式锁的演进与取舍
java·redis·高并发·分布式锁·redisson·架构设计·秒杀系统
她说..1 小时前
Java 注解核心面试题
java·spring boot·spring·spring cloud·自定义注解
用户8307196840821 小时前
Spring Boot @Qualifier深度解密:从“按名查找”到“分组批量注入”,一文掌握它的全部“隐藏技能”。
java·spring boot