2

spring 3.2 と AspectJ 1.6 を使用して、AspectJ でプロファイリング アスペクトを実装し、アプリケーションのパフォーマンス メトリックを取得しました。

機能していますが、この側面の実行が条件付きである必要があります。つまり、このプロファイリングはたまにしか役に立たないので、必要がないときはオフにしたいと思います。

私が行った最初のアプローチは、スプリングによって注入される新しいプロパティをアスペクトに追加することでした。次に、このプロパティを使用して実行を条件付きにします。このようなもの:

側面:

...
private boolean active;
@Pointcut("execution(public * *(..))")
    public void anyPublicOperation() {
}
@Around("anyPublicOperation()")
public Object profile(final ProceedingJoinPoint pjp)
    throws Throwable {
if (active){
            ...
    }
}

ビーン構成:

<!-- Profiling aspect -->
<bean class="example.ProfilingAspect" factory-method="aspectOf">
    <property name="active" value="true"/>
</bean>

これは機能しますが、アスペクトの実行を避けるために完全に非アクティブ化したいので、必要ありません。

ただし、私が見つけた唯一の解決策は、「aop.xml」ファイルの側面にコメントすることでしたが、プロパティを使用してプロファイリングをアクティブ化/非アクティブ化することをお勧めします。

何か案が?前もって感謝します!

4

2 に答える 2

0

2 つの aop.xml ファイルを作成できます... 1 つは通常用で、もう 1 つはプロファイリング用です。次の引数でプロファイリングを選択します。

-Dorg.aspectj.weaver.loadtime.configuration=META-INF/aop-profiling.xml

または、アスペクトをチェックインして、何らかの作業が必要かどうかを確認できます...しかし、私はそのようにはしません...

于 2013-01-04T11:10:11.910 に答える