0

我正在使用 Spring 4 测试 AspectJ 编译时编织(一旦我让它工作,我想在我的项目中使用它)。我有以下服务等级:

@Service
public class HelloService {

    public String sayHello(){       
        return sayHello2();
    }

    public String sayHello2(){
        return "Hello from AOP2!";
    }
}

这是我的 AspectJ 建议:

@Component
@Aspect
public class ExecutionTimeAdvice {

    @Around("execution(* com.senyume.aop.service..*(..))")
    public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable {

        long startTime = System.nanoTime();
        Object retVal = pjp.proceed();
        long endTime = System.nanoTime();

        long duration = (endTime - startTime);

        logger.info("Method " + pjp.getSignature() + " took " + (duration/1000000.0) + " ms)");

        return retVal;
    }
}

我正在尝试根据Spring 文档启用 AspectJ 编译时间编织。由于我正在使用注释,因此我尝试遵循此线程中提到的建议。

当我运行应用程序时,我没有看到将建议应用于 sayHello2()。我错过了什么?我在这里做错了什么?

github上的完整源代码

4

1 回答 1

1

您的 Gradle 构建使用 Java 编译器来构建项目。实际使用 AspectJ 编译器怎么样?如果您想使用 AspectJ,这将有很大帮助。;-)

您可以使用Gradle AspectJ 插件

于 2014-11-22T10:38:26.017 回答