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

程序包分层结构:

- 所有程序包

## 类分层结构

- java.lang.Object
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Exception
      - java.lang.RuntimeException
        - org.springframework.core.NestedRuntimeException
          - org.springframework.aop.AopInvocationException

## 接口分层结构

- org.aopalliance.aop.Advice
  - org.springframework.aop.AfterAdvice
    - org.springframework.aop.AfterReturningAdvice
    - org.springframework.aop.ThrowsAdvice
  - org.springframework.aop.BeforeAdvice
    - org.springframework.aop.MethodBeforeAdvice
  - org.springframework.aop.DynamicIntroductionAdvice
    - org.springframework.aop.IntroductionInterceptor (并 extends org.aopalliance.intercept.MethodInterceptor)
  - org.aopalliance.intercept.Interceptor
    - org.aopalliance.intercept.MethodInterceptor
      - org.springframework.aop.IntroductionInterceptor (并 extends org.springframework.aop.DynamicIntroductionAdvice)
- org.springframework.aop.Advisor
  - org.springframework.aop.IntroductionAdvisor (并 extends org.springframework.aop.IntroductionInfo)
  - org.springframework.aop.PointcutAdvisor
- org.springframework.aop.ClassFilter
- org.springframework.aop.IntroductionInfo
  - org.springframework.aop.IntroductionAdvisor (并 extends org.springframework.aop.Advisor)
- org.aopalliance.intercept.Joinpoint
  - org.aopalliance.intercept.Invocation
    - org.aopalliance.intercept.MethodInvocation
      - org.springframework.aop.ProxyMethodInvocation
- org.springframework.aop.MethodMatcher
  - org.springframework.aop.IntroductionAwareMethodMatcher
- org.springframework.aop.Pointcut
- org.springframework.aop.RawTargetAccess
- org.springframework.aop.SpringProxy
- org.springframework.aop.TargetClassAware
  - org.springframework.aop.TargetSource