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

程序包分层结构:

- 所有程序包

## 类分层结构

- java.lang.Object
  - org.springframework.beans.factory.annotation.AnnotationBeanWiringInfoResolver (implements org.springframework.beans.factory.wiring.BeanWiringInfoResolver)
  - 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.beans.factory.annotation.AnnotatedGenericBeanDefinition (implements org.springframework.beans.factory.annotation.AnnotatedBeanDefinition)
  - org.springframework.beans.factory.annotation.BeanFactoryAnnotationUtils
  - org.springframework.beans.factory.annotation.CustomAutowireConfigurer (implements org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.beans.factory.config.BeanFactoryPostProcessor, org.springframework.core.Ordered)
  - 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.beans.factory.annotation.InjectionMetadata
  - org.springframework.beans.factory.annotation.InjectionMetadata.InjectedElement
  - org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessorAdapter (implements org.springframework.beans.factory.config.SmartInstantiationAwareBeanPostProcessor)
    - org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor (implements org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.support.MergedBeanDefinitionPostProcessor, org.springframework.core.PriorityOrdered)
    - org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor (implements org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.support.MergedBeanDefinitionPostProcessor, org.springframework.core.PriorityOrdered)
  - 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.core.AttributeAccessor
  - org.springframework.beans.factory.config.BeanDefinition (并 extends org.springframework.beans.BeanMetadataElement)
    - org.springframework.beans.factory.annotation.AnnotatedBeanDefinition
- org.springframework.beans.BeanMetadataElement
  - org.springframework.beans.factory.config.BeanDefinition (并 extends org.springframework.core.AttributeAccessor)
    - org.springframework.beans.factory.annotation.AnnotatedBeanDefinition

## 注释类型分层结构

- org.springframework.beans.factory.annotation.Qualifier (implements java.lang.annotation.Annotation)
- org.springframework.beans.factory.annotation.Autowired (implements java.lang.annotation.Annotation)
- org.springframework.beans.factory.annotation.Lookup (implements java.lang.annotation.Annotation)
- org.springframework.beans.factory.annotation.Configurable (implements java.lang.annotation.Annotation)
- org.springframework.beans.factory.annotation.Required (implements java.lang.annotation.Annotation)
- org.springframework.beans.factory.annotation.Value (implements java.lang.annotation.Annotation)

## 枚举分层结构

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
    - org.springframework.beans.factory.annotation.Autowire