org.springframework.aop.interceptor
Class PerformanceMonitorInterceptor

java.lang.Object
  extended by org.springframework.aop.interceptor.AbstractTraceInterceptor
      extended by org.springframework.aop.interceptor.AbstractMonitoringInterceptor
          extended by org.springframework.aop.interceptor.PerformanceMonitorInterceptor
All Implemented Interfaces:
Serializable, Advice, Interceptor, MethodInterceptor

public class PerformanceMonitorInterceptor
extends AbstractMonitoringInterceptor

Simple AOP Alliance MethodInterceptor for performance monitoring. This interceptor has no effect on the intercepted method call.

Uses a StopWatch for the actual performance measuring.

Author:
Rod Johnson, Dmitriy Kopylenko, Rob Harrop
See Also:
StopWatch, JamonPerformanceMonitorInterceptor, Serialized Form

Field Summary
 
Fields inherited from class org.springframework.aop.interceptor.AbstractTraceInterceptor
defaultLogger
 
Constructor Summary
PerformanceMonitorInterceptor()
          Create a new PerformanceMonitorInterceptor with a static logger.
PerformanceMonitorInterceptor(boolean useDynamicLogger)
          Create a new PerformanceMonitorInterceptor with a dynamic or static logger, according to the given flag.
 
Method Summary
protected  Object invokeUnderTrace(MethodInvocation invocation, Log logger)
          Subclasses must override this method to perform any tracing around the supplied MethodInvocation.
 
Methods inherited from class org.springframework.aop.interceptor.AbstractMonitoringInterceptor
createInvocationTraceName, getPrefix, getSuffix, setLogTargetClassInvocation, setPrefix, setSuffix
 
Methods inherited from class org.springframework.aop.interceptor.AbstractTraceInterceptor
getClassForLogging, getLoggerForInvocation, invoke, isInterceptorEnabled, isLogEnabled, setHideProxyClassNames, setLoggerName, setUseDynamicLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PerformanceMonitorInterceptor

public PerformanceMonitorInterceptor()
Create a new PerformanceMonitorInterceptor with a static logger.


PerformanceMonitorInterceptor

public PerformanceMonitorInterceptor(boolean useDynamicLogger)
Create a new PerformanceMonitorInterceptor with a dynamic or static logger, according to the given flag.

Parameters:
useDynamicLogger - whether to use a dynamic logger or a static logger
See Also:
AbstractTraceInterceptor.setUseDynamicLogger(boolean)
Method Detail

invokeUnderTrace

protected Object invokeUnderTrace(MethodInvocation invocation,
                                  Log logger)
                           throws Throwable
Description copied from class: AbstractTraceInterceptor
Subclasses must override this method to perform any tracing around the supplied MethodInvocation. Subclasses are responsible for ensuring that the MethodInvocation actually executes by calling MethodInvocation.proceed().

By default, the passed-in Log instance will have log level "trace" enabled. Subclasses do not have to check for this again, unless they overwrite the isInterceptorEnabled method to modify the default behavior.

Specified by:
invokeUnderTrace in class AbstractTraceInterceptor
logger - the Log to write trace messages to
Returns:
the result of the call to MethodInvocation.proceed()
Throws:
Throwable - if the call to MethodInvocation.proceed() encountered any errors
See Also:
AbstractTraceInterceptor.isInterceptorEnabled(org.aopalliance.intercept.MethodInvocation, org.apache.commons.logging.Log), AbstractTraceInterceptor.isLogEnabled(org.apache.commons.logging.Log)