Spring Bean

     从Spring框架中咱们知道,Spring的主角是Bean,Bean是由BeanFactory容器建立的,Bean先由BeanDefinitionReader读入,再解释成BeanDefinition,再注册到BeanDefinitionRegistry上,最后由BeanDefinition生成Bean。

关键类结构和实现:框架

  1. BeanDefinition
    BeanDefinition用于描述Bean实例,利用BeanDefinition能够建立Bean实例。
    BeanDefinition结构如图所示:

    1) BeanDefinition 用于描述Bean实例,包括Bean的属性值,构造参数等信息
    2) AbstractBeanDefinition BeanDefinition的实现
    3) RootBeanDefinition 从配置源中生成的BeanDefinition
    4) ChildBeanDefinition 从双亲BeanDefinition集成构造的BeanDefinition
    5) GenericBeanDefinition 标准BeanDefinition定义,支持设置双亲BeanDefinition,Spring2.5后是RootBeanDefinition和ChildBeanDefinition更好替代者
    6) AnnotatedGenericBeanDefinition 从注解中读取生成BeanDefinition
     
  2. BeanDefinitionReader
    BeanDefinitionReader用于读取资源生成BeanDefinition。
    BeanDefinitionReader结构如图所示:

    1) BeanDefinitionReader 读取BeanDefinition接口
    2) AbstractBeanDefinitionReader BeanDefinitionReader的实现
    3) XmlBeanDefinitionReader 从xml文件中读取BeanDefinition
    4) PropertiesBeanDefinitionReader 从配置文件读取BeanDefinition
    5) GroovyBeanDefinnitionReader 读取Groovy语言定义的BeanDefinition
     
  3. BeanDefinitionDocumentReader
    XmlBeanDefinitionReader中真正的解析工做是由BeanDefinitionDocumentReader完成的。
    BeanDefinitionDocumentReader结构如图所示:

    1) BeanDefinitionDocumentReader解析BeanDefinition的xml文件,被XmlBeanDefinitionReader使用
    2) DefaultBeanDefinitionDocumentReader BeanDefinitionDocumentReader的默认实现
     
  4. BeanDefinitionRegistry
    BeanDefinitionRegistry用于注册BeanDefinition。DefaultListableBeanFactory继承了它实现BeanDefinition注册功能。
    BeanDefinitionRegistry结构如图所示:

    1) BeanDefinitionRegistry 用于注册BeanDefinition的接口
    2) DefaultListableBeanFactory 继承BeanDefinitionRegistry,提供BeanDefinition注册服务
     
  5. ReaderContext
    1) ReaderContext 用于封装BeanDefinition读取过程当中的上下文,包括Resource, Reader等
    2) XmlReaderContext 用于封装XmlBeanDefinition读取过程当中的上下文
     
  6. Utils 1) BeanDefinitionReaderUtils BeanDefinitionReader内部工具类,用于注册BeanDefinition等 2) BeanUtils 工具类用于建立Bean,检查Bean属性,拷贝Bean属性等
相关文章
相关标签/搜索