Class AspectJExpressionPointcut
- All Implemented Interfaces:
Serializable
,ClassFilter
,IntroductionAwareMethodMatcher
,MethodMatcher
,Pointcut
,ExpressionPointcut
,Aware
,BeanFactoryAware
Pointcut
implementation
that uses the AspectJ weaver to evaluate a pointcut expression.
The pointcut expression value is an AspectJ expression. This can reference other pointcuts and use composition and other operations.
Naturally, as this is to be processed by Spring AOP's proxy-based model, only method execution pointcuts are supported.
- Since:
- 2.0
- Author:
- Rob Harrop, Adrian Colyer, Rod Johnson, Juergen Hoeller, Ramnivas Laddad, Dave Syer, Yanming Zhou
- See Also:
-
Field Summary
Fields inherited from interface org.springframework.aop.ClassFilter
TRUE
Fields inherited from interface org.springframework.aop.MethodMatcher
TRUE
-
Constructor Summary
ConstructorDescriptionCreate a new default AspectJExpressionPointcut.AspectJExpressionPointcut
(Class<?> declarationScope, String[] paramNames, Class<?>[] paramTypes) Create a new AspectJExpressionPointcut with the given settings. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Return the ClassFilter for this pointcut.protected String
Return the MethodMatcher for this pointcut.org.aspectj.weaver.tools.PointcutExpression
Return the underlying AspectJ pointcut expression.int
hashCode()
boolean
Is thisMethodMatcher
dynamic, that is, must a final check be made via theMethodMatcher.matches(Method, Class, Object[])
method at runtime even ifMethodMatcher.matches(Method, Class)
returnstrue
?boolean
Should the pointcut apply to the given interface or target class?boolean
Perform static checking to determine whether the given method matches.boolean
Perform static checking whether the given method matches.boolean
Check whether there is a runtime (dynamic) match for this method, which must have matched statically.void
setBeanFactory
(BeanFactory beanFactory) Callback that supplies the owning factory to a bean instance.void
setParameterNames
(String... names) Set the parameter names for the pointcut.void
setParameterTypes
(Class<?>... types) Set the parameter types for the pointcut.void
setPointcutDeclarationScope
(Class<?> pointcutDeclarationScope) Set the declaration scope for the pointcut.toString()
Methods inherited from class org.springframework.aop.support.AbstractExpressionPointcut
getExpression, getLocation, onSetExpression, setExpression, setLocation
-
Constructor Details
-
AspectJExpressionPointcut
public AspectJExpressionPointcut()Create a new default AspectJExpressionPointcut. -
AspectJExpressionPointcut
public AspectJExpressionPointcut(Class<?> declarationScope, String[] paramNames, Class<?>[] paramTypes) Create a new AspectJExpressionPointcut with the given settings.- Parameters:
declarationScope
- the declaration scope for the pointcutparamNames
- the parameter names for the pointcutparamTypes
- the parameter types for the pointcut
-
-
Method Details
-
setPointcutDeclarationScope
Set the declaration scope for the pointcut. -
setParameterNames
Set the parameter names for the pointcut. -
setParameterTypes
Set the parameter types for the pointcut. -
setBeanFactory
Description copied from interface:BeanFactoryAware
Callback that supplies the owning factory to a bean instance.Invoked after the population of normal bean properties but before an initialization callback such as
InitializingBean.afterPropertiesSet()
or a custom init-method.- Specified by:
setBeanFactory
in interfaceBeanFactoryAware
- Parameters:
beanFactory
- owning BeanFactory (nevernull
). The bean can immediately call methods on the factory.- See Also:
-
getClassFilter
Description copied from interface:Pointcut
Return the ClassFilter for this pointcut.- Specified by:
getClassFilter
in interfacePointcut
- Returns:
- the ClassFilter (never
null
)
-
getMethodMatcher
Description copied from interface:Pointcut
Return the MethodMatcher for this pointcut.- Specified by:
getMethodMatcher
in interfacePointcut
- Returns:
- the MethodMatcher (never
null
)
-
getPointcutExpression
public org.aspectj.weaver.tools.PointcutExpression getPointcutExpression()Return the underlying AspectJ pointcut expression. -
matches
Description copied from interface:ClassFilter
Should the pointcut apply to the given interface or target class?- Specified by:
matches
in interfaceClassFilter
- Parameters:
targetClass
- the candidate target class- Returns:
- whether the advice should apply to the given target class
-
matches
Description copied from interface:IntroductionAwareMethodMatcher
Perform static checking whether the given method matches. This may be invoked instead of the 2-argMethodMatcher.matches(java.lang.reflect.Method, Class)
method if the caller supports the extended IntroductionAwareMethodMatcher interface.- Specified by:
matches
in interfaceIntroductionAwareMethodMatcher
- Parameters:
method
- the candidate methodtargetClass
- the target classhasIntroductions
-true
if the object on whose behalf we are asking is the subject on one or more introductions;false
otherwise- Returns:
- whether this method matches statically
-
matches
Description copied from interface:MethodMatcher
Perform static checking to determine whether the given method matches.If this method returns
false
or ifMethodMatcher.isRuntime()
returnsfalse
, no runtime check (i.e. noMethodMatcher.matches(Method, Class, Object[])
call) will be made.- Specified by:
matches
in interfaceMethodMatcher
- Parameters:
method
- the candidate methodtargetClass
- the target class- Returns:
- whether this method matches statically
-
isRuntime
public boolean isRuntime()Description copied from interface:MethodMatcher
Is thisMethodMatcher
dynamic, that is, must a final check be made via theMethodMatcher.matches(Method, Class, Object[])
method at runtime even ifMethodMatcher.matches(Method, Class)
returnstrue
?Can be invoked when an AOP proxy is created, and need not be invoked again before each method invocation.
- Specified by:
isRuntime
in interfaceMethodMatcher
- Returns:
- whether a runtime match via
MethodMatcher.matches(Method, Class, Object[])
is required if static matching passed
-
matches
Description copied from interface:MethodMatcher
Check whether there is a runtime (dynamic) match for this method, which must have matched statically.This method is invoked only if
MethodMatcher.matches(Method, Class)
returnstrue
for the given method and target class, and ifMethodMatcher.isRuntime()
returnstrue
.Invoked immediately before potential running of the advice, after any advice earlier in the advice chain has run.
- Specified by:
matches
in interfaceMethodMatcher
- Parameters:
method
- the candidate methodtargetClass
- the target classargs
- arguments to the method- Returns:
- whether there's a runtime match
- See Also:
-
getCurrentProxiedBeanName
-
equals
-
hashCode
public int hashCode() -
toString
-