Class AbstractAspectJAdvisorFactory
- All Implemented Interfaces:
AspectJAdvisorFactory
- Direct Known Subclasses:
ReflectiveAspectJAdvisorFactory
This class handles annotation parsing and validation functionality. It does not actually generate Spring AOP Advisors, which is deferred to subclasses.
- Since:
- 2.0
- Author:
- Rod Johnson, Adrian Colyer, Juergen Hoeller, Sam Brannen
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static class
Class modeling an AspectJ annotation, exposing its type enumeration and pointcut String.protected static enum
Enum for AspectJ annotation types. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
System property that instructs Spring to ignore ajc-compiled aspects for Spring AOP proxying, restoring traditional Spring behavior for scenarios where both weaving and AspectJ auto-proxying are enabled.protected final Log
Logger available to subclasses.protected final ParameterNameDiscoverer
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected static AbstractAspectJAdvisorFactory.AspectJAnnotation
findAspectJAnnotationOnMethod
(Method method) Find and return the first AspectJ annotation on the given method (there should only be one anyway...).boolean
Determine whether the given class is an aspect, as reported by AspectJ'sAjTypeSystem
.void
Is the given class a valid AspectJ aspect class?Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.aop.aspectj.annotation.AspectJAdvisorFactory
getAdvice, getAdvisor, getAdvisors
-
Field Details
-
IGNORE_AJC_PROPERTY_NAME
System property that instructs Spring to ignore ajc-compiled aspects for Spring AOP proxying, restoring traditional Spring behavior for scenarios where both weaving and AspectJ auto-proxying are enabled.The default is "false". Consider switching this to "true" if you encounter double execution of your aspects in a given build setup. Note that we recommend restructuring your AspectJ configuration to avoid such double exposure of an AspectJ aspect to begin with.
- Since:
- 6.1.15
- See Also:
-
logger
Logger available to subclasses. -
parameterNameDiscoverer
-
-
Constructor Details
-
AbstractAspectJAdvisorFactory
public AbstractAspectJAdvisorFactory()
-
-
Method Details
-
isAspect
Description copied from interface:AspectJAdvisorFactory
Determine whether the given class is an aspect, as reported by AspectJ'sAjTypeSystem
.Will simply return
false
if the supposed aspect is invalid (such as an extension of a concrete aspect class). Will return true for some aspects that Spring AOP cannot process, such as those with unsupported instantiation models. Use theAspectJAdvisorFactory.validate(java.lang.Class<?>)
method to handle these cases if necessary.- Specified by:
isAspect
in interfaceAspectJAdvisorFactory
- Parameters:
clazz
- the supposed annotation-style AspectJ class- Returns:
- whether this class is recognized by AspectJ as an aspect class
-
validate
Description copied from interface:AspectJAdvisorFactory
Is the given class a valid AspectJ aspect class?- Specified by:
validate
in interfaceAspectJAdvisorFactory
- Parameters:
aspectClass
- the supposed AspectJ annotation-style class to validate- Throws:
AopConfigException
- if the class is an invalid aspect (which can never be legal)NotAnAtAspectException
- if the class is not an aspect at all (which may or may not be legal, depending on the context)
-
findAspectJAnnotationOnMethod
@Nullable protected static AbstractAspectJAdvisorFactory.AspectJAnnotation findAspectJAnnotationOnMethod(Method method) Find and return the first AspectJ annotation on the given method (there should only be one anyway...).
-