Aspectj和捕获私有或内部方法

我用Spring配置了AspectJ,它可以在“捕获”来自类外的公共方法时正常工作。 现在我想做这样的事情:

public class SomeLogic(){ public boolean someMethod(boolean test){ if(test){ return innerA(); } else { return innerB(); } } private boolean innerA() {// some logic} private boolean innerA() {// some other logic} } 

SomeLogic是一个SpringBean。 方法innerA()和innerB()可以声明为private或public – 从Struts动作调用someMethod()方法。 是否有可能从AspectJ中捕获从someMethod()调用的方法innerA()或innerB()?

我的配置(基于XML):

              

是的,使用AspectJ很容易捕获私有方法。

在所有私有方法之前打印句子的示例:

  @Pointcut("execution(private * *(..))") public void anyPrivateMethod() {} @Before("anyPrivateMethod()") public void beforePrivateMethod(JoinPoint jp) { System.out.println("Before a private method..."); } 

如果您熟悉Eclipse,我建议使用STS开发AspectJ或仅安装AJDT插件 。

有关Spring AOPfunction的更多信息,请参见Spring参考文档。