zoukankan      html  css  js  c++  java
  • SpringAOP 失效解决方案、Spring事务失效

    SpringAOP 失效解决方案

    SpringAOP是基于代理来对目标方法进行增强,但是有的时候又会出现“增强无效”的情况,比如在@Transactional下的某类中的方法内调用了该类的另一个方法,这种情况下,事务有时候会出现不生效的情况。因为,事务也是基于代理来增强目标对象的目标方法的,我们应该获取代理对象再来调用子方法。

    获取代理对象的三个方法:

    1. @Autowried 目标类注入进来,用这个注入进来的对象调用子方法即可。

    2. 实现ApplicationContextAware接口或者@Autowried ApplicationContext对象,再通过getBean()来获取。

    3. 通过SpringAOP的API来获取代理对象,这个方法的前提是在启动类上的@EnableAspectJAutoProxy的注解中加上属性exposeProxy = true;接下来通过API获取即可: AopContext.currentProxy() 即可获取当前类的目标代理对象,记得强转成当前类,然后调用你想调用的子方法即可。

  • 相关阅读:
    Request和Session的生命周期
    了解EBP指针
    esp跟ebp跟踪记录
    深入浅出Node.js (6)
    洛谷 P2404 自然数的拆分问题
    洛谷 P1852 奇怪的字符串
    洛谷 P1433 吃奶酪
    洛谷 P1881 绳子对折
    洛谷 P1162 填涂颜色
    P1145 约瑟夫
  • 原文地址:https://www.cnblogs.com/deepSleeping/p/12101512.html
Copyright © 2011-2022 走看看