Interface AspectJAdvisorFactory

All Known Implementing Classes:
AbstractAspectJAdvisorFactory, ReflectiveAspectJAdvisorFactory

public interface AspectJAdvisorFactory
Interface for factories that can create Spring AOP Advisors from classes annotated with AspectJ annotation syntax.
Since:
2.0
Author:
Rod Johnson, Juergen Hoeller
See Also:
  • Method Details

    • isAspect

      boolean isAspect(Class<?> clazz)
      Determine whether the given class is an aspect, as reported by AspectJ's 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 this class is recognized by AspectJ as an aspect class
    • validate

      void validate(Class<?> aspectClass) throws AopConfigException
      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)
    • getAdvisors

      List<Advisor> getAdvisors(MetadataAwareAspectInstanceFactory aspectInstanceFactory)
      Build Spring AOP Advisors for all annotated At-AspectJ methods on the specified aspect instance.
      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 Advisor getAdvisor(Method candidateAdviceMethod, MetadataAwareAspectInstanceFactory aspectInstanceFactory, int declarationOrder, String aspectName)
      Build a Spring AOP Advisor for the given AspectJ advice method.
      Parameters:
      candidateAdviceMethod - the candidate advice method
      aspectInstanceFactory - the aspect instance factory
      declarationOrder - 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
    • getAdvice

      @Nullable Advice getAdvice(Method candidateAdviceMethod, AspectJExpressionPointcut expressionPointcut, MetadataAwareAspectInstanceFactory aspectInstanceFactory, int declarationOrder, String aspectName)
      Build a Spring AOP Advice for the given AspectJ advice method.
      Parameters:
      candidateAdviceMethod - the candidate advice method
      expressionPointcut - the AspectJ expression pointcut
      aspectInstanceFactory - the aspect instance factory
      declarationOrder - 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
      See Also: