通过在bean中调用方法来调用代理AOP

Spi*_*man 3 java aop spring spring-aop

可以说我有一个用两个方法'foo'和'goo'调用的bean,并且'goo'被标记为AOP拦截调用。
是否可以在'foo'中编写任何代码以便不直接而是通过bean的代理包装来调用'goo'方法来激活它的AOP部分?

public Class Pojo{

  public void foo(){
    //what should I write here in order to activate 'goo' in transactional mode??
  }

  @Transactional
  public void goo(){
  }
}
Run Code Online (Sandbox Code Playgroud)

Thi*_*Roy 5

是的,但是您需要通过spring代理访问它:

public Class Pojo{

  @Autowired
  private Pojo springProxy;

  public void foo(){
    springProxy.goo();
  }

  @Transactional
  public void goo(){
  }
}
Run Code Online (Sandbox Code Playgroud)