public interface

AspectJAdvisorFactory

org.springframework.aop.aspectj.annotation.AspectJAdvisorFactory
Known Indirect Subclasses

Class Overview

Interface for factories that can create Spring AOP Advisors from classes annotated with AspectJ annotation syntax.

See Also

Summary

Public Methods
abstract Advice getAdvice(Method candidateAdviceMethod, AspectJExpressionPointcut pointcut, MetadataAwareAspectInstanceFactory aif, int declarationOrderInAspect, String aspectName)
Build a Spring AOP Advice for the given AspectJ advice method.
abstract Advisor getAdvisor(Method candidateAdviceMethod, MetadataAwareAspectInstanceFactory aif, int declarationOrderInAspect, String aspectName)
Build a Spring AOP Advisor for the given AspectJ advice method.
abstract List<Advisor> getAdvisors(MetadataAwareAspectInstanceFactory aif)
Build Spring AOP Advisors for all annotated At-AspectJ methods on the specified aspect instance.
abstract boolean isAspect(Class<?> clazz)
Determine whether or not the given class is an aspect, as reported by AspectJ's org.aspectj.lang.reflect.AjTypeSystem.
abstract void validate(Class<?> aspectClass)
Is the given class a valid AspectJ aspect class?

Public Methods

public abstract Advice getAdvice (Method candidateAdviceMethod, AspectJExpressionPointcut pointcut, MetadataAwareAspectInstanceFactory aif, int declarationOrderInAspect, String aspectName)

Build a Spring AOP Advice for the given AspectJ advice method.

Parameters
candidateAdviceMethod the candidate advice method
pointcut the corresponding AspectJ expression pointcut
aif the aspect instance factory
declarationOrderInAspect the declaration order within the aspect
aspectName 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

public abstract Advisor getAdvisor (Method candidateAdviceMethod, MetadataAwareAspectInstanceFactory aif, int declarationOrderInAspect, String aspectName)

Build a Spring AOP Advisor for the given AspectJ advice method.

Parameters
candidateAdviceMethod the candidate advice method
aif the aspect instance factory
declarationOrderInAspect the declaration order within the aspect
aspectName 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

public abstract List<Advisor> getAdvisors (MetadataAwareAspectInstanceFactory aif)

Build Spring AOP Advisors for all annotated At-AspectJ methods on the specified aspect instance.

Parameters
aif the aspect instance factory (not the aspect instance itself in order to avoid eager instantiation)
Returns
  • a list of advisors for this class

public abstract boolean isAspect (Class<?> clazz)

Determine whether or not the given class is an aspect, as reported by AspectJ's org.aspectj.lang.reflect.AjTypeSystem.

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 the validate(Class) method to handle these cases if necessary.

Parameters
clazz the supposed annotation-style AspectJ class
Returns
  • whether or not this class is recognized by AspectJ as an aspect class

public abstract void validate (Class<?> aspectClass)

Is the given class a valid AspectJ aspect class?

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)