PerformanceMonitorInterceptorの使い方

org.springframework.aop.interceptor.PerformanceMonitorInterceptorを使うと、メソッドの処理時間を計測できます。


Bean定義ファイルでは、aop:advisorを利用して定義します。
以下の例では、my.colnagoパッケージ以下の全クラスの全メソッドを対象。

<aop:config>
  <!-- Pointcut for PerformanceTrace(Required 'TRACE' level -->
  <aop:advisor 
    pointcut="execution(* my.colnago.*..*.*(..))" 
    advice-ref="performanceTraceAdvice"/>
</aop:config>

<bean id="performanceTraceAdvice" 
  class="org.springframework.aop.interceptor.PerformanceMonitorInterceptor">
  <property name="useDynamicLogger" value="true"/>
</bean>

出力結果は、以下のとおり。Log出力レベルをTRACEにすることも忘れずに!

2007-03-12 15:01:22,134 TRACE [main][my.colnago.dao.tbl.ibatis.TestClassTblDao] - StopWatch 'my.colnago.dao.tbl.ITestClassTblDao.insert': running time (millis) = 31

なお、aop:configの部分は、以下のようにも定義可能。

<aop:config>
  <aop:pointcut id="colnago" 
       expression="execution(* my.colnago.*..*.*(..))" />
  <aop:advisor pointcut-ref="colnago" 
    advice-ref="performanceLoggingAdvice"/>
</aop:config>