0

我正在尝试使用 Spring AOP 在我的项目中引入一个记录器,但我对 AOP 和 AspectJ 语法不熟悉,所以我遇到了一些麻烦......

我在一些教程/文档之后定义了一个基本的方面类:

@Aspect
public class Logger {

    @Pointcut("execution(* exportdatamanager.export.ExportType.fetch(..))")
    public void fetch() {
    }

    // ...

    @AfterReturning("fetch()")
    public void fetchingResult(JoinPoint joinPoint, Object result) {
        System.out.println("TEST LOG " + result.toString());
    }
}

但是当我运行我的应用程序时,我得到了这个异常:

java.lang.IllegalArgumentException: error at ::0 formal unbound in pointcut 

我做错了什么,我想我的 ApsectJ 表达式有问题......

您能否建议我快速参考一下Spring AOP 支持的 AspectJ 语法?

笔记

ExportType我的界面中的一个片段

public interface ExportType {

    List<Object> fetch() throws FetchingStrategyException;

    // ...

}
4

1 回答 1

2

好的,我只是这样解决了我的问题:

@AfterReturning(pointcut = "fetch()", returning = "results")
public void fetchingResult(JoinPoint joinPoint, List<Object> results) {
    System.out.println("TEST LOG " + results.toString());
}
于 2012-07-16T09:56:34.283 回答