で使用jamon
するspring
にはJamonPerformanceMonitorInterceptor
、applicationContext.xml
. それは説明されており、そのソースのテスト内に例があります。残念ながら、xml 構成なしで spring-boot アプリケーションを構築したいと考えています。いくつかの注釈を使用してto spring
を含めることは可能ですか?JamonPerformanceMonitorInterceptor
2 に答える
遅刻しないよりはまし...
私もまったく同じ状況でした。XML 構成なしで JAMon を構成する必要がありました。オンラインの例 (JAMon ソース コードのコメントを含む) のほとんどは、XML 構成の柔軟性を宣伝していますが、注釈ベースの構成の例は見つかりませんでした。また、注釈ベースの構成は必ずしも柔軟性が低いわけではなく、概念的に分離する必要があり、アプリケーションの機能部分と混同しないようにする必要があります。そのようなアドバイザーは良い例だと思います:
@Component
public class MonitoringAdvisor extends AbstractPointcutAdvisor {
private final StaticMethodMatcherPointcut pointcut = new StaticMethodMatcherPointcut() {
@Override
public boolean matches(Method method, Class<?> targetClass) {
return targetClass.isAnnotationPresent(RestController.class);
}
};
@Override
public Pointcut getPointcut() {
return this.pointcut;
}
@Override
public Advice getAdvice() {
return new JamonPerformanceMonitorInterceptor(true, true);
}
}
このアドバイザは、Spring/AOP に、 で注釈が付けられた Spring Bean の任意のメソッドで JAMon モニタリング アドバイスを実行するように通知し@RestContrller
ます。このアドバイザーは、残りのコントローラーと同じ Spring コンテキストに構成/追加する必要があります。
私の場合、特に残りのコントローラーを監視したかったことに注意してください。自分のニーズに合わせてアドバイザーを適応させることができます。(私のコードでは、提示されたアドバイザーのより高度な/構成可能なバージョンを使用しています)
このSpring Boot サンプル アプリケーションは役に立ちますか?
以下は、Spring AOP マニュアルの関連部分です。