2014-11-22 153 views
0

我在測試AspectJ編譯時使用Spring 4編織(一旦我開始工作,我想在我的項目中使用它)。我有以下服務類:Native AspectJ with Spring的問題

@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; 
    } 
} 

我試圖激活AspectJ織根據Spring documentation編譯時間。由於我使用註釋,我試圖遵循in this thread提到的建議。

當我運行應用程序時,我沒有看到應用於sayHello2()的建議。我錯過了什麼?我在這裏做錯了什麼?

完整的源代碼on github

回答

1

你的搖籃構建使用Java編譯器來編譯項目。如何使用AspectJ編譯器?如果你想使用AspectJ,這將有很大的幫助。可以使用Gradle AspectJ plugin

+0

謝謝!這是我使用AspectJ的第一個項目,我沒有意識到我將不得不添加/配置編譯器。 – Jigish 2014-11-22 19:44:57

+0

在使用全新技術之前閱讀一些文檔總是一個好主意。 :-) – kriegaex 2014-11-22 21:08:21

+0

我正在關注Spring文檔......目前尚不清楚我需要在構建文件中使用額外的編譯器步驟。 – Jigish 2014-11-23 08:19:04