自分の側面を定義するのに少し問題があります。get メソッドをプロファイリングしたいエンティティがたくさんあるので、次のポイントカットとメソッドを書きました。
@Pointcut("execution(* tld.myproject.data.entities.*.get*()")
public void getEntityProperty() {}
@Around("getEntityProperty()")
public Object profileGetEntityProperty(ProceedingJoinPoint pjp) throws Throwable {
long start = System.currentTimeMillis();
String name = pjp.getSignature().getName();
Object output = pjp.proceed();
long elapsedTime = System.currentTimeMillis() - start;
if(elapsedTime > 100)
System.err.println("profileGetEntityProperty: Entity method " + name + " execution time: " + elapsedTime + " ms.");
return output;
}
構成でウィービングをオンにしましたが、ビジネスレイヤーに織り込む側面は問題なく機能します。私のポイントカットは正しく書かれていますか? それとも、それらを織り不可能にするエンティティについて何かがありますか? (私のエンティティには、クラス定義の前に @Entity というプレフィックスが付いています)
乾杯
ニック