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

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

如下 f1 和f2 属于同一个类

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

    }
    
   @Transactional
   public f2() {
        
      
  

    }

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

  1. 在同一类的非切面方法中获取代理对象,‌确保切面可以正常生效。‌
  2. 在不同类中,‌非事务方法调用事务方法时,‌确保事务生效。‌
  3. 在同一个类中,‌事务方法调用非事务方法时,‌事务仍然具有传播性,‌确保事务生效。‌
相关推荐
桦说编程17 分钟前
实战分析 ConcurrentHashMap.computeIfAbsent 的锁冲突问题
java·后端·性能优化
爱可生开源社区1 小时前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
玹外之音2 小时前
Spring AI MCP 实战:将你的服务升级为 AI 可调用的智能工具
spring·ai编程
来一斤小鲜肉3 小时前
Spring AI入门:第一个AI应用跑起来
spring·ai编程
NE_STOP4 小时前
springMVC-常见视图组件与RESTFul编程风格
spring
程序员清风4 小时前
用了三年AI,我总结出高效使用AI的3个习惯!
java·后端·面试
beata5 小时前
Java基础-13: Java反射机制详解:原理、使用与实战示例
java·后端
用户0332126663675 小时前
Java 使用 Spire.Presentation 在 PowerPoint 中添加或删除表格行与列
java
随逸1775 小时前
《从零搭建NestJS项目》
数据库·typescript
Seven977 小时前
Condition底层机制剖析:多线程等待与通知机制
java