zoukankan      html  css  js  c++  java
  • Spring学习(四)--Spring的IOC

    1、BeaDefinition的Resource定位

    (1)直接使用BeanDefinitionFactory

    定义一个Resource来定位容器使用的BeanDefinition。

    Resource rc = new Resource ("Bean.XML");

    rc不能由DefinitionListableBeanFactory来直接使用,需通过BeanDefinitionReader处理。

    (2)使用上下文ApplicationContext

    在ApplicationContext中,Spring已经提供了加载不同Resource的读取器。但是灵活性上BeanDefinitionFactory要更高一些。

    (3)Resource的继承关系

    通过返回的Resource来定位BeanDefinitionFactory。

    2、BeanDefinitionFactory的载入和解析

    BeanDefinitionFactory载入就是把定位到的BeanDefinitionFactory在IOC容器中转换为Spring内部表示的数据结构。

    通过refresh()来启动流程,refresh()在AbstrctApplicationContext类中,AbstrctApplicationContext类中详细的描述着整个ApplicationContext的过程。

    BeanDefinitionFactory的载入的交互过程:

    BeanDefinitionFactory的解析

    调用LoadBeanDefinitions(Recource res),这个接口具体实现在XmlBeanDefintionReader中,在读取器中获得带表XML文件的Resource,Resource中封装这对XML操作的I/O,获取之后按着Spring的Bean定义规则对XML文档树进行解析。解析是交给BeanDefinitionPearserDelegate来完成的。

    先进行基本通用的XML解析,再根据Spring的Bean定义规则对XML文档树进行解析。

  • 相关阅读:
    5.抽象工厂模式-abstractfactory
    java-code优化(持续更新)
    4.工厂方法模式-factoryMethod
    3.单例模式-singleton
    2.适配器模式-adapter
    1.外观模式-facade
    Hibernate(七)多对一单向关联映射
    Hibernate(六)一对一双向关联映射
    Hibernate(五)一对一单向关联映射
    Hibernate(四)基本映射
  • 原文地址:https://www.cnblogs.com/carblack/p/10864615.html
Copyright © 2011-2022 走看看