类 AspectJExpressionPointcut
- 所有已实现的接口:
ClassFilter,IntroductionAwareMethodMatcher,MethodMatcher,Pointcut,ExpressionPointcut,infra.beans.factory.Aware,infra.beans.factory.BeanFactoryAware,Serializable
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 Framework AOP's proxy-based model, only method execution pointcuts are supported.
- 从以下版本开始:
- 4.0
- 作者:
- Rob Harrop, Adrian Colyer, Rod Johnson, Juergen Hoeller, Ramnivas Laddad, Dave Syer, Harry Yang
- 另请参阅:
-
嵌套类概要
嵌套类修饰符和类型类说明private classMatcher class for the BeanNamePointcutDesignatorHandler.private classHandler for the Infra-specificbean()pointcut designator extension to AspectJ.private static class从接口继承的嵌套类/接口 infra.aop.ClassFilter
ClassFilter.IntersectionClassFilter, ClassFilter.NegateClassFilter, ClassFilter.UnionClassFilter从接口继承的嵌套类/接口 infra.aop.MethodMatcher
MethodMatcher.ClassFilterAwareUnionIntroductionAwareMethodMatcher, MethodMatcher.ClassFilterAwareUnionMethodMatcher, MethodMatcher.IntersectionIntroductionAwareMethodMatcher, MethodMatcher.IntersectionMethodMatcher, MethodMatcher.NegateMethodMatcher, MethodMatcher.UnionIntroductionAwareMethodMatcher, MethodMatcher.UnionMethodMatcher从接口继承的嵌套类/接口 infra.aop.Pointcut
Pointcut.GetterPointcut, Pointcut.SetterPointcut -
字段概要
字段修饰符和类型字段说明private static final Stringprivate booleanprivate infra.beans.factory.BeanFactoryprivate static final infra.logging.Loggerprivate ClassLoaderprivate Class<?>private org.aspectj.weaver.tools.PointcutExpressionprivate String[]private Class<?>[]private booleanprivate static final Set<org.aspectj.weaver.tools.PointcutPrimitive>从接口继承的字段 infra.aop.ClassFilter
TRUE从接口继承的字段 infra.aop.MethodMatcher
TRUE -
构造器概要
构造器构造器说明Create a new default AspectJExpressionPointcut.AspectJExpressionPointcut(Class<?> declarationScope, String[] paramNames, Class<?>[] paramTypes) Create a new AspectJExpressionPointcut with the given settings. -
方法概要
修饰符和类型方法说明private voidbindParameters(ProxyMethodInvocation invocation, org.aspectj.weaver.tools.JoinPointMatch jpm) private org.aspectj.weaver.tools.PointcutExpressionbuildPointcutExpression(ClassLoader classLoader) Build the underlying AspectJ pointcut expression.private voidCheck whether this pointcut is ready to match.private static booleancompiledByAjc(Class<?> clazz) private booleanprivate ClassLoaderDetermine the ClassLoader to use for pointcut evaluation.booleanReturn the ClassFilter for this pointcut.protected Stringprivate org.aspectj.weaver.tools.PointcutExpressiongetFallbackPointcutExpression(Class<?> targetClass) Get a new pointcut expression based on a target class's loader rather than the default.Return the MethodMatcher for this pointcut.org.aspectj.weaver.tools.PointcutExpressionReturn the underlying AspectJ pointcut expression.private RuntimeTestWalkergetRuntimeTestWalker(org.aspectj.weaver.tools.ShadowMatch shadowMatch) private org.aspectj.weaver.tools.ShadowMatchgetShadowMatch(Method targetMethod, Method originalMethod) private org.aspectj.weaver.tools.ShadowMatchgetTargetShadowMatch(Method method, Class<?> targetClass) inthashCode()private org.aspectj.weaver.tools.PointcutParserinitializePointcutParser(ClassLoader classLoader) Initialize the underlying AspectJ pointcut parser.booleanIs this MethodMatcher dynamic, that is, must a final call be made on theMethodMatcher.matches(MethodInvocation)method at runtime even if the 2-arg matches method returnstrue?booleanShould the pointcut apply to the given interface or target class?booleanChecking whether the given method matches.booleanPerform static checking whether the given method matches.booleanmatches(MethodInvocation invocation) Check whether there a runtime (dynamic) match for this method, which must have matched statically.private org.aspectj.weaver.tools.PointcutExpressionLazily build the underlying AspectJ pointcut expression.private StringreplaceBooleanOperators(String pcExpr) If a pointcut expression has been specified in XML, the user cannot write "and" as "&&" (though&&will work).private StringvoidsetBeanFactory(infra.beans.factory.BeanFactory beanFactory) voidsetParameterNames(String... names) Set the parameter names for the pointcut.voidsetParameterTypes(Class<?>... types) Set the parameter types for the pointcut.voidsetPointcutDeclarationScope(Class<?> pointcutDeclarationScope) Set the declaration scope for the pointcut.toString()从类继承的方法 infra.aop.support.AbstractExpressionPointcut
getExpression, getLocation, onSetExpression, setExpression, setLocation
-
字段详细资料
-
AJC_MAGIC
- 另请参阅:
-
SUPPORTED_PRIMITIVES
-
log
private static final infra.logging.Logger log -
pointcutDeclarationScope
-
aspectCompiledByAjc
private boolean aspectCompiledByAjc -
pointcutParameterNames
-
pointcutParameterTypes
-
beanFactory
@Nullable private infra.beans.factory.BeanFactory beanFactory -
pointcutClassLoader
-
pointcutExpression
@Nullable private transient org.aspectj.weaver.tools.PointcutExpression pointcutExpression -
pointcutParsingFailed
private transient boolean pointcutParsingFailed
-
-
构造器详细资料
-
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.- 参数:
declarationScope- the declaration scope for the pointcutparamNames- the parameter names for the pointcutparamTypes- the parameter types for the pointcut
-
-
方法详细资料
-
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
public void setBeanFactory(infra.beans.factory.BeanFactory beanFactory) - 指定者:
setBeanFactory在接口中infra.beans.factory.BeanFactoryAware
-
getClassFilter
从接口复制的说明:PointcutReturn the ClassFilter for this pointcut.- 指定者:
getClassFilter在接口中Pointcut- 返回:
- the ClassFilter (never
null)
-
getMethodMatcher
从接口复制的说明:PointcutReturn the MethodMatcher for this pointcut.- 指定者:
getMethodMatcher在接口中Pointcut- 返回:
- the MethodMatcher (never
null)
-
checkExpression
private void checkExpression()Check whether this pointcut is ready to match. -
obtainPointcutExpression
private org.aspectj.weaver.tools.PointcutExpression obtainPointcutExpression()Lazily build the underlying AspectJ pointcut expression. -
determinePointcutClassLoader
Determine the ClassLoader to use for pointcut evaluation. -
buildPointcutExpression
private org.aspectj.weaver.tools.PointcutExpression buildPointcutExpression(@Nullable ClassLoader classLoader) Build the underlying AspectJ pointcut expression. -
resolveExpression
-
initializePointcutParser
private org.aspectj.weaver.tools.PointcutParser initializePointcutParser(@Nullable ClassLoader classLoader) Initialize the underlying AspectJ pointcut parser. -
replaceBooleanOperators
If a pointcut expression has been specified in XML, the user cannot write "and" as "&&" (though&&will work).We also allow "and" between two pointcut sub-expressions.
This method converts back to
&&for the AspectJ pointcut parser. -
getPointcutExpression
public org.aspectj.weaver.tools.PointcutExpression getPointcutExpression()Return the underlying AspectJ pointcut expression. -
matches
从接口复制的说明:ClassFilterShould the pointcut apply to the given interface or target class?- 指定者:
matches在接口中ClassFilter- 参数:
targetClass- the candidate target class- 返回:
- whether the advice should apply to the given target class
-
matches
从接口复制的说明:IntroductionAwareMethodMatcherPerform 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.- 指定者:
matches在接口中IntroductionAwareMethodMatcher- 参数:
method- the candidate methodtargetClass- the target classhasIntroductions-trueif the object on whose behalf we are asking is the subject on one or more introductions;falseotherwise- 返回:
- whether or not this method matches statically
-
matches
从接口复制的说明:MethodMatcherChecking whether the given method matches.- 指定者:
matches在接口中MethodMatcher- 参数:
method- the candidate methodtargetClass- the target class- 返回:
- whether or not this method matches on application startup.
-
isRuntime
public boolean isRuntime()从接口复制的说明:MethodMatcherIs this MethodMatcher dynamic, that is, must a final call be made on theMethodMatcher.matches(MethodInvocation)method at runtime even if the 2-arg matches method returnstrue?Can be invoked when an AOP proxy is created, and need not be invoked again before each method invocation,
- 指定者:
isRuntime在接口中MethodMatcher- 返回:
- whether or not a runtime match via the 1-arg
MethodMatcher.matches(MethodInvocation)method is required if static matching passed
-
matches
从接口复制的说明:MethodMatcherCheck 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
truefor the given method and target class, and if theMethodMatcher.isRuntime()method returnstrue. Invoked immediately before potential running of the advice, after any advice earlier in the advice chain has run.- 指定者:
matches在接口中MethodMatcher- 参数:
invocation- runtime invocation contains the candidate method and target class, arguments to the method- 返回:
- whether there's a runtime match
- 另请参阅:
-
getCurrentProxiedBeanName
-
getFallbackPointcutExpression
@Nullable private org.aspectj.weaver.tools.PointcutExpression getFallbackPointcutExpression(Class<?> targetClass) Get a new pointcut expression based on a target class's loader rather than the default. -
getRuntimeTestWalker
-
bindParameters
private void bindParameters(ProxyMethodInvocation invocation, org.aspectj.weaver.tools.JoinPointMatch jpm) -
getTargetShadowMatch
-
getShadowMatch
-
containsAnnotationPointcut
private boolean containsAnnotationPointcut() -
compiledByAjc
-
equals
-
hashCode
public int hashCode() -
toString
-