BeanDefinition源码解析

SpringIOC容器管理了我们定义的各种Bean对象及其相互的关系,Bean对象在Spring实现中是以BeanDefinition来描述的,其继承体系如下:

Bean 的解析过程非常复杂,功能被分的很细,因为这里需要被扩展的地方很多,必须保证有足够的灵活性,以应对可能的变化。Bean 的解析主要就是对 Spring 配置文件的解析。这个解析过程主要通过下图中的类完成:

  • AttributeAccessor

  • BeanMetadataElement

  • BeanDefinition

  • AbstractBeanDefinition

  • ChildBeanDefinition

在配置文件中可以定义父和子,父用RootBeanDefinition表示,而子用ChildBeanDefiniton表示,而没有父的就使用RootBeanDefinition表示

  • GenericBeanDefinition

GenericBeanDefinition是自2.5以后新加入的bean文件配置属性定义类,是一站式服务类,用于替代ChildBeanDefinition类

  • RootBeanDefinition

参考:RootBeanDefinition源码解析

  • AnnotatedBeanDefinition

参考:AnnotatedBeanDefinition源码解析

Last updated

Was this helpful?