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

程序包分层结构:

- 所有程序包

## 类分层结构

- java.lang.Object
  - org.springframework.context.annotation.AdviceModeImportSelector<A> (implements org.springframework.context.annotation.ImportSelector)
  - org.springframework.context.annotation.AnnotatedBeanDefinitionReader
  - org.springframework.context.annotation.AnnotationBeanNameGenerator (implements org.springframework.beans.factory.support.BeanNameGenerator)
  - org.springframework.context.annotation.AnnotationConfigBeanDefinitionParser (implements org.springframework.beans.factory.xml.BeanDefinitionParser)
  - org.springframework.context.annotation.AnnotationConfigUtils
  - org.springframework.context.annotation.AnnotationScopeMetadataResolver (implements org.springframework.context.annotation.ScopeMetadataResolver)
  - org.springframework.core.AttributeAccessorSupport (implements org.springframework.core.AttributeAccessor, java.io.Serializable)
    - org.springframework.beans.BeanMetadataAttributeAccessor (implements org.springframework.beans.BeanMetadataElement)
      - org.springframework.beans.factory.support.AbstractBeanDefinition (implements org.springframework.beans.factory.config.BeanDefinition, java.lang.Cloneable)
        - org.springframework.beans.factory.support.GenericBeanDefinition
          - org.springframework.context.annotation.ScannedGenericBeanDefinition (implements org.springframework.beans.factory.annotation.AnnotatedBeanDefinition)
  - org.springframework.context.annotation.AutoProxyRegistrar (implements org.springframework.context.annotation.ImportBeanDefinitionRegistrar)
  - org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider (implements org.springframework.core.env.EnvironmentCapable, org.springframework.context.ResourceLoaderAware)
    - org.springframework.context.annotation.ClassPathBeanDefinitionScanner
  - org.springframework.context.annotation.ComponentScanBeanDefinitionParser (implements org.springframework.beans.factory.xml.BeanDefinitionParser)
  - org.springframework.context.annotation.ConfigurationClassPostProcessor (implements org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor, org.springframework.context.EnvironmentAware, org.springframework.core.PriorityOrdered, org.springframework.context.ResourceLoaderAware)
  - org.springframework.core.io.DefaultResourceLoader (implements org.springframework.core.io.ResourceLoader)
    - org.springframework.context.support.AbstractApplicationContext (implements org.springframework.context.ConfigurableApplicationContext)
      - org.springframework.context.support.GenericApplicationContext (implements org.springframework.beans.factory.support.BeanDefinitionRegistry)
        - org.springframework.context.annotation.AnnotationConfigApplicationContext (implements org.springframework.context.annotation.AnnotationConfigRegistry)
  - org.springframework.context.annotation.DeferredImportSelector.Group.Entry
  - org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor (implements org.springframework.beans.factory.config.DestructionAwareBeanPostProcessor, org.springframework.beans.factory.support.MergedBeanDefinitionPostProcessor, org.springframework.core.PriorityOrdered, java.io.Serializable)
    - org.springframework.context.annotation.CommonAnnotationBeanPostProcessor (implements org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessor, java.io.Serializable)
  - org.springframework.beans.factory.annotation.InjectionMetadata.InjectedElement
    - org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.LookupElement
  - org.springframework.context.annotation.Jsr330ScopeMetadataResolver (implements org.springframework.context.annotation.ScopeMetadataResolver)
  - org.springframework.context.annotation.LoadTimeWeavingConfiguration (implements org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.context.annotation.ImportAware)
  - org.springframework.context.annotation.MBeanExportConfiguration (implements org.springframework.beans.factory.BeanFactoryAware, org.springframework.context.EnvironmentAware, org.springframework.context.annotation.ImportAware)
  - org.springframework.context.annotation.ScopeMetadata
  - org.springframework.beans.factory.support.SimpleAutowireCandidateResolver (implements org.springframework.beans.factory.support.AutowireCandidateResolver)
    - org.springframework.beans.factory.support.GenericTypeAwareAutowireCandidateResolver (implements org.springframework.beans.factory.BeanFactoryAware)
      - org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver
        - org.springframework.context.annotation.ContextAnnotationAutowireCandidateResolver

## 接口分层结构

- org.springframework.context.annotation.AnnotationConfigRegistry
- org.springframework.beans.factory.Aware
  - org.springframework.context.annotation.ImportAware
- org.springframework.context.annotation.Condition
  - org.springframework.context.annotation.ConfigurationCondition
- org.springframework.context.annotation.ConditionContext
- org.springframework.context.annotation.DeferredImportSelector.Group
- org.springframework.context.annotation.ImportBeanDefinitionRegistrar
- org.springframework.context.annotation.ImportSelector
  - org.springframework.context.annotation.DeferredImportSelector
- org.springframework.context.annotation.LoadTimeWeavingConfigurer
- org.springframework.context.annotation.ScopeMetadataResolver

## 注释类型分层结构

- org.springframework.context.annotation.Description (implements java.lang.annotation.Annotation)
- org.springframework.context.annotation.PropertySources (implements java.lang.annotation.Annotation)
- org.springframework.context.annotation.Bean (implements java.lang.annotation.Annotation)
- org.springframework.context.annotation.Scope (implements java.lang.annotation.Annotation)
- org.springframework.context.annotation.EnableAspectJAutoProxy (implements java.lang.annotation.Annotation)
- org.springframework.context.annotation.EnableMBeanExport (implements java.lang.annotation.Annotation)
- org.springframework.context.annotation.ComponentScan (implements java.lang.annotation.Annotation)
- org.springframework.context.annotation.Role (implements java.lang.annotation.Annotation)
- org.springframework.context.annotation.Profile (implements java.lang.annotation.Annotation)
- org.springframework.context.annotation.Lazy (implements java.lang.annotation.Annotation)
- org.springframework.context.annotation.Configuration (implements java.lang.annotation.Annotation)
- org.springframework.context.annotation.Import (implements java.lang.annotation.Annotation)
- org.springframework.context.annotation.ComponentScans (implements java.lang.annotation.Annotation)
- org.springframework.context.annotation.Conditional (implements java.lang.annotation.Annotation)
- org.springframework.context.annotation.EnableLoadTimeWeaving (implements java.lang.annotation.Annotation)
- org.springframework.context.annotation.PropertySource (implements java.lang.annotation.Annotation)
- org.springframework.context.annotation.ComponentScan.Filter (implements java.lang.annotation.Annotation)
- org.springframework.context.annotation.Primary (implements java.lang.annotation.Annotation)
- org.springframework.context.annotation.ImportResource (implements java.lang.annotation.Annotation)
- org.springframework.context.annotation.DependsOn (implements java.lang.annotation.Annotation)

## 枚举分层结构

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
    - org.springframework.context.annotation.ScopedProxyMode
    - org.springframework.context.annotation.EnableLoadTimeWeaving.AspectJWeaving
    - org.springframework.context.annotation.AdviceMode
    - org.springframework.context.annotation.ConfigurationCondition.ConfigurationPhase
    - org.springframework.context.annotation.MBeanExportConfiguration.SpecificPlatform
    - org.springframework.context.annotation.FilterType