Save This Page
Home » spring-framework-2.5.5-with-dependencies » org.springframework » aop » [javadoc | source]
org.springframework.aop
public interface: MethodMatcher [javadoc | source]

All Known Implementing Classes:
    NameMatchMethodPointcut, ClassFilterAwareUnionMethodMatcher, DynamicMethodMatcher, PointcutUnionMethodMatcher, Perl5RegexpMethodPointcut, AspectJExpressionPointcut, AbstractRegexpMethodPointcut, AnnotationMethodMatcher, TransactionAttributeSourcePointcut, StaticMethodMatcher, IntersectionMethodMatcher, TrueMethodMatcher, AdviceExcludingMethodMatcher, IntroductionAwareMethodMatcher, JdkRegexpMethodPointcut, GetterPointcut, SetterPointcut, PerTargetInstantiationModelPointcut, DynamicMethodMatcherPointcutAdvisor, DynamicMethodMatcherPointcut, StaticMethodMatcherPointcutAdvisor, ControlFlowPointcut, UnionMethodMatcher, StaticMethodMatcherPointcut

Part of a Pointcut : Checks whether the target method is eligible for advice.

A MethodMatcher may be evaluated statically or at runtime (dynamically). Static matching involves method and (possibly) method attributes. Dynamic matching also makes arguments for a particular call available, and any effects of running previous advice applying to the joinpoint.

If an implementation returns false from its #isRuntime() method, evaluation can be performed statically, and the result will be the same for all invocations of this method, whatever their arguments. This means that if the #isRuntime() method returns false, the 3-arg #matches(java.lang.reflect.Method, Class, Object[]) method will never be invoked.

If an implementation returns true from its 2-arg #matches(java.lang.reflect.Method, Class) method and its #isRuntime() method returns true, the 3-arg #matches(java.lang.reflect.Method, Class, Object[]) method will be invoked immediately before each potential execution of the related advice, to decide whether the advice should run. All previous advice, such as earlier interceptors in an interceptor chain, will have run, so any state changes they have produced in parameters or ThreadLocal state will be available at the time of evaluation.

Field Summary
 MethodMatcher TRUE    Canonical instance that matches all methods. 
Method from org.springframework.aop.MethodMatcher Summary:
isRuntime,   matches,   matches
Method from org.springframework.aop.MethodMatcher Detail:
 public boolean isRuntime()
    Is this MethodMatcher dynamic, that is, must a final call be made on the #matches(java.lang.reflect.Method, Class, Object[]) method at runtime even if the 2-arg matches method returns true?

    Can be invoked when an AOP proxy is created, and need not be invoked again before each method invocation,

 public boolean matches(Method method,
    Class targetClass)
 public boolean matches(Method method,
    Class targetClass,
    Object[] args)
    Check whether there a runtime (dynamic) match for this method, which must have matched statically.

    This method is invoked only if the 2-arg matches method returns true for the given method and target class, and if the #isRuntime() method returns true. Invoked immediately before potential running of the advice, after any advice earlier in the advice chain has run.