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 documentationに従って、AspectJ Compile time weaving を有効にしようとしています。私は注釈を使用しているので、このスレッドに記載されているアドバイスに従おうとしました。
アプリケーションを実行すると、sayHello2() に適用されているアドバイスが表示されません。私は何が欠けていますか?ここで何が間違っていますか?
github の完全なソース コード