内部方法调用时,aop失效

Spring管理实务使用aop 对事务进行处理,方法前开启事务,方法后提交事务,aop使用动态代理生成代理对象调用的
内部方法this调用不起作用,应该用代理对象去调用

spring中获取代理对象的三种方式:

  1. 直接autowire;
  2. autowire applicationcontext,通过context.getbean获取代理对象;
  3. 通过aopcontext.currentproxy(源码里其实就是从ThreadLocal中获取,注解中开启exposeproxy设置true后,会把代理放入线程本地变量)方法获取(注意:需要启动类上增加注解@enableaspectjautoproxy(exposeproxy=true));

如果spring启动时循环依赖导致报错,可以通过依赖注入属性增加@lazy注解解决。

你可能感兴趣的:(内部方法调用时,aop失效)