態様は、以下の例に示すように、メソッド呼び出し、 の性能を測定するために使用することができる。AspectJの - ダウト
public aspect MonitorRequests {
void around() : monitoredRequestO {
PerfStats stats = getPerfStats(thisDoinPointStaticPart);
long start = System-currentTimeMillisO;
proceedO;
stats.ecunter++;
stats.time += System.currentTimeMillisC)-start;
}
pointcut monitoredRequestO :
execution(void HttpServ1et.do*(..)) && if(enabled);
// can expose stats via JMX, dump method, getstats etc.
public static class PerfStats { _. }
private Map<StaticPart,PerfStats> perfStatMap • //...
private boolean enabled;
}
デフォルトでは、アスペクトインスタンスはむしろで、Java仮想マシンに関連付けられています 特定の実行フロー。静的クラスに似ています。
public aspect MonitorDatabaseRequests
percflow(monitoredRequest() && !cflowbelow(mon-5toredRequest()) {
void around() : monitoredRequestO {
PerfStats stats = getPerfStats(thisJoinPointStaticPart);
long time.= System.currentTimeMi 11 i s O ;
proceed();
stats.counter++;
stats.databaseTime += accumulatedoatabaseTime;
stats.time 4= System.currentTimeMi 11 isO-time;
}
}
percflow()の宣言を追加すると、私はどのようにpercflow作品を混乱している
この例では作るの違いは何ですか: 別の態様は、以下の は異なるデフォルトのアスペクトインスタンスを関連付けるためにpercflow()
を使用していますこれを使用しない場合とはどう違うのですか?
少し時間をかけてコードを整理してください。以前は読むことができませんでした。私は今回はそれを修正した。 –