美文网首页
Bean 的生产过程

Bean 的生产过程

作者: zlb | 来源:发表于2017-08-05 11:20 被阅读18次

    Spring 容器从加载配置文件到创建出一个完整的Bean 的作业流程及参与的角色

    Bean

    (1),ResourceLoader 从存储介质中加载Spring配置信息,并使用Resource表示这个配置文件资源

    (2),BeanDefinitionReader 读取 Resource 所指向的配置文件资源,然后结项配置文件。配置文件中的每个<Bean> 解析成一个 BeanDefinition 对象,并保存至 BeanDefinitionRegistry 中去

    (3),容器扫描 BeanDefinitionRegistry 中的 BeanDefinition, 使用 Java 反射机制 识别出 Bean 后置处理器(实现BeanFactoryPostProcessor 接口的Bean),然后调用这些Bean工厂后处理器对BeanDefinitionRegistry 中的 BeanDefinition 进行加工处理,主要完成两项工作:

    • 对使用占位符的<Bean> 元素标签进行解析工作,得到最终的配置值。这意味着对一些半成品的BeanDefinition 对象进行加工处理并得到成品的 BeanDefinition 对象
    • 对 BeanDefinitionRegistry 中的BeanDefinition 进行扫描,通过 java 反射机制 找出所有属性编辑器Bean(所有实现了PropertyEditor 接口的Bean),并将它们自动注册到Spring 容器的属性编辑器注册表中(PropertyEditorRegistry)

    (4),Spring 容器从BeanDefinitionRegistry 中取出加工后的BeanDefinition ,并调用 InstantiationStrategy 着手进行Bean 实例化的工作

    (5),在实例化Bean 时,Spring 容器使用 BeanWrapper 对Bean 进行封装,完成Bean 属性的注入工作

    (6),利用容器中注册的Bean 后处理器(实现 BeanPostProcessor 接口的Bean)对已经完成属性注入工作的 Bean 进行后续加工,直接装配出一个准备就绪的 Bean

    相关文章

      网友评论

          本文标题:Bean 的生产过程

          本文链接:https://www.haomeiwen.com/subject/qouilxtx.html