# 程序包org.springframework.aop.aspectj的分层结构

程序包分层结构:

- 所有程序包

## 类分层结构

- java.lang.Object
  - org.springframework.aop.aspectj.AbstractAspectJAdvice (implements org.aopalliance.aop.Advice, org.springframework.aop.aspectj.AspectJPrecedenceInformation, java.io.Serializable)
    - org.springframework.aop.aspectj.AspectJAfterAdvice (implements org.springframework.aop.AfterAdvice, org.aopalliance.intercept.MethodInterceptor, java.io.Serializable)
    - org.springframework.aop.aspectj.AspectJAfterReturningAdvice (implements org.springframework.aop.AfterAdvice, org.springframework.aop.AfterReturningAdvice, java.io.Serializable)
    - org.springframework.aop.aspectj.AspectJAfterThrowingAdvice (implements org.springframework.aop.AfterAdvice, org.aopalliance.intercept.MethodInterceptor, java.io.Serializable)
    - org.springframework.aop.aspectj.AspectJAroundAdvice (implements org.aopalliance.intercept.MethodInterceptor, java.io.Serializable)
    - org.springframework.aop.aspectj.AspectJMethodBeforeAdvice (implements org.springframework.aop.MethodBeforeAdvice, java.io.Serializable)
  - org.springframework.aop.support.AbstractExpressionPointcut (implements org.springframework.aop.support.ExpressionPointcut, java.io.Serializable)
    - org.springframework.aop.aspectj.AspectJExpressionPointcut (implements org.springframework.beans.factory.BeanFactoryAware, org.springframework.aop.ClassFilter, org.springframework.aop.IntroductionAwareMethodMatcher)
  - org.springframework.aop.support.AbstractPointcutAdvisor (implements org.springframework.core.Ordered, org.springframework.aop.PointcutAdvisor, java.io.Serializable)
    - org.springframework.aop.support.AbstractGenericPointcutAdvisor
      - org.springframework.aop.aspectj.AspectJExpressionPointcutAdvisor (implements org.springframework.beans.factory.BeanFactoryAware)
  - org.springframework.aop.aspectj.AspectJAdviceParameterNameDiscoverer (implements org.springframework.core.ParameterNameDiscoverer)
  - org.springframework.aop.aspectj.AspectJAopUtils
  - org.springframework.aop.aspectj.AspectJPointcutAdvisor (implements org.springframework.core.Ordered, org.springframework.aop.PointcutAdvisor)
  - org.springframework.aop.aspectj.AspectJProxyUtils
  - org.springframework.aop.aspectj.AspectJWeaverMessageHandler (implements org.aspectj.bridge.IMessageHandler)
  - org.springframework.aop.aspectj.DeclareParentsAdvisor (implements org.springframework.aop.IntroductionAdvisor)
  - org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint (implements org.aspectj.lang.JoinPoint.StaticPart, org.aspectj.lang.ProceedingJoinPoint)
  - org.springframework.aop.aspectj.SimpleAspectInstanceFactory (implements org.springframework.aop.aspectj.AspectInstanceFactory)
  - org.springframework.aop.aspectj.SingletonAspectInstanceFactory (implements org.springframework.aop.aspectj.AspectInstanceFactory, java.io.Serializable)
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Exception
      - java.lang.RuntimeException
        - org.springframework.aop.aspectj.AspectJAdviceParameterNameDiscoverer.AmbiguousBindingException
  - org.springframework.aop.aspectj.TypePatternClassFilter (implements org.springframework.aop.ClassFilter)

## 接口分层结构

- org.springframework.aop.Advisor
  - org.springframework.aop.PointcutAdvisor
    - org.springframework.aop.aspectj.InstantiationModelAwarePointcutAdvisor
- org.springframework.core.Ordered
  - org.springframework.aop.aspectj.AspectInstanceFactory
  - org.springframework.aop.aspectj.AspectJPrecedenceInformation