Class ReflectiveAspectJAdvisorFactory
- java.lang.Object
- org.springframework.aop.aspectj.annotation.AbstractAspectJAdvisorFactory
- org.springframework.aop.aspectj.annotation.ReflectiveAspectJAdvisorFactory
- All Implemented Interfaces:
Serializable
,AspectJAdvisorFactory
public class ReflectiveAspectJAdvisorFactory extends AbstractAspectJAdvisorFactory implements Serializable
Factory that can create Spring AOP Advisors given AspectJ classes from classes honoring AspectJ's annotation syntax, using reflection to invoke the corresponding advice methods.- Since:
- 2.0
- Author:
- Rod Johnson, Adrian Colyer, Juergen Hoeller, Ramnivas Laddad, Phillip Webb, Sam Brannen
- See Also:
- Serialized Form
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
ReflectiveAspectJAdvisorFactory.SyntheticInstantiationAdvisor
Synthetic advisor that instantiates the aspect.Nested classes/interfaces inherited from class org.springframework.aop.aspectj.annotation.AbstractAspectJAdvisorFactory
AbstractAspectJAdvisorFactory.AspectJAnnotation<A extends Annotation>, AbstractAspectJAdvisorFactory.AspectJAnnotationType
Field Summary
Fields inherited from class org.springframework.aop.aspectj.annotation.AbstractAspectJAdvisorFactory
logger, parameterNameDiscoverer
Constructor Summary
Constructors Constructor Description ReflectiveAspectJAdvisorFactory()
Create a newReflectiveAspectJAdvisorFactory
.ReflectiveAspectJAdvisorFactory(BeanFactory beanFactory)
Create a newReflectiveAspectJAdvisorFactory
, propagating the givenBeanFactory
to the createdAspectJExpressionPointcut
instances, for bean pointcut handling as well as consistentClassLoader
resolution.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Advice
getAdvice(Method candidateAdviceMethod, AspectJExpressionPointcut expressionPointcut, MetadataAwareAspectInstanceFactory aspectInstanceFactory, int declarationOrder, String aspectName)
Build a Spring AOP Advice for the given AspectJ advice method.Advisor
getAdvisor(Method candidateAdviceMethod, MetadataAwareAspectInstanceFactory aspectInstanceFactory, int declarationOrderInAspect, String aspectName)
Build a Spring AOP Advisor for the given AspectJ advice method.List<Advisor>
getAdvisors(MetadataAwareAspectInstanceFactory aspectInstanceFactory)
Build Spring AOP Advisors for all annotated At-AspectJ methods on the specified aspect instance.Methods inherited from class org.springframework.aop.aspectj.annotation.AbstractAspectJAdvisorFactory
findAspectJAnnotationOnMethod, isAspect, validate
Constructor Detail
ReflectiveAspectJAdvisorFactory
public ReflectiveAspectJAdvisorFactory()
Create a newReflectiveAspectJAdvisorFactory
.
ReflectiveAspectJAdvisorFactory
public ReflectiveAspectJAdvisorFactory(@Nullable BeanFactory beanFactory)
Create a newReflectiveAspectJAdvisorFactory
, propagating the givenBeanFactory
to the createdAspectJExpressionPointcut
instances, for bean pointcut handling as well as consistentClassLoader
resolution.- Parameters:
beanFactory
- the BeanFactory to propagate (may benull
}- Since:
- 4.3.6
- See Also:
AspectJExpressionPointcut.setBeanFactory(org.springframework.beans.factory.BeanFactory)
,ConfigurableBeanFactory.getBeanClassLoader()
Method Detail
getAdvisors
public List<Advisor> getAdvisors(MetadataAwareAspectInstanceFactory aspectInstanceFactory)
Description copied from interface:AspectJAdvisorFactory
Build Spring AOP Advisors for all annotated At-AspectJ methods on the specified aspect instance.- Specified by:
getAdvisors
in interfaceAspectJAdvisorFactory
- Parameters:
aspectInstanceFactory
- the aspect instance factory (not the aspect instance itself in order to avoid eager instantiation)- Returns:
- a list of advisors for this class
getAdvisor
@Nullable public Advisor getAdvisor(Method candidateAdviceMethod, MetadataAwareAspectInstanceFactory aspectInstanceFactory, int declarationOrderInAspect, String aspectName)
Description copied from interface:AspectJAdvisorFactory
Build a Spring AOP Advisor for the given AspectJ advice method.- Specified by:
getAdvisor
in interfaceAspectJAdvisorFactory
- Parameters:
candidateAdviceMethod
- the candidate advice methodaspectInstanceFactory
- the aspect instance factorydeclarationOrderInAspect
- the declaration order within the aspectaspectName
- the name of the aspect- Returns:
null
if the method is not an AspectJ advice method or if it is a pointcut that will be used by other advice but will not create a Spring advice in its own right
getAdvice
@Nullable public Advice getAdvice(Method candidateAdviceMethod, AspectJExpressionPointcut expressionPointcut, MetadataAwareAspectInstanceFactory aspectInstanceFactory, int declarationOrder, String aspectName)
Description copied from interface:AspectJAdvisorFactory
Build a Spring AOP Advice for the given AspectJ advice method.- Specified by:
getAdvice
in interfaceAspectJAdvisorFactory
- Parameters:
candidateAdviceMethod
- the candidate advice methodexpressionPointcut
- the AspectJ expression pointcutaspectInstanceFactory
- the aspect instance factorydeclarationOrder
- the declaration order within the aspectaspectName
- the name of the aspect- Returns:
null
if the method is not an AspectJ advice method or if it is a pointcut that will be used by other advice but will not create a Spring advice in its own right- See Also:
AspectJAroundAdvice
,AspectJMethodBeforeAdvice
,AspectJAfterAdvice
,AspectJAfterReturningAdvice
,AspectJAfterThrowingAdvice