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文档树进行解析。

  • 相关阅读:
    Sublime : python环境
    shell:遍历目录和子目录的所有文件
    Java:方法的参数是传值还是传引用
    Sublime Text:Windows下配置C 编译环境和GDB调试环境
    代码优化的一些尝试
    go:关于变量地址的疑惑
    go:结构体的可访问性
    go:channel(未完)
    H5常见问题及解决方案。
    谷歌插件大全地址
  • 原文地址:https://www.cnblogs.com/carblack/p/10864615.html
Copyright © 2011-2022 走看看