• Spring学习(三)--Spring的IOC


    1、BeanFactory和FactoryBean

    BeanFactory是一个接口类,定义了IOC容器最基本的形式,提供了IOC容器所应该遵守的基本服务契约。

    FactoryBean是一个能产生或者修饰对象生成的工厂Bean,实现方式与工厂模式和修饰器模式类似。

    2、getBean()

    getBean()方法是使用IOC容器API的主要方法,可以通过指定名字的索引来获取IOC容器的Bean。

    3、BeanFactory的设计原理

    4、ApplicationContext

    ApplicationContext除了可以提供容器的那些基本功能外,还为用户提供了各种附加服务。

    MessageSource,支持国际化,为开发多语言版本应用提供服务。

    访问资源更加方便。

    支持应用事件,继承了接口ApplictionEventPublisher,在上下文中引入了事件机制。

    在ApplicationContext提供附加服务,使IOC容器的工能更加丰富。

    5、IOC容器的初始化

    IOC容器的初始化是通过refresh()f方法来启动的,这个方法是用来启动IOC容器,IOC容器的启动过程:BeanDefinition的资源Resource定位、载入和注册。

    Spring将这三个过程分离,分别用不同的模块进行,使用户可以更加方便的适合自己的IOC容器的初始化过程。

    (1)Resource定位

    由ResourceLoader通过统一的Resource接口来实现的,这个Resource接口对各种Definition定义了统一的接口。

    (2)BeanDefinition的载入

    BeanDefinition就是的普通的POJO的抽象表示,通过BeanDefinition定义的数据结构,是IOC容器可以更加方便的管理Bean。

    (3)向IOC容器注册BeanDefinition

    通过调用BeanDefinitionRegistry接口的实现来完成的,把载入过程中解析到的BeanDefinition在IOC容器中注入到一个HashMap中,IOC容器通过HashMap来持有这些BeanDefinition。

    IOC的初始化过程不包含依赖注入,依赖注入发生在第一次通过getBean()从容器中获取Bean的时候。我们可以通过对预实例化的配置来规定依赖注入的发生时间。 

  • 相关阅读:
    55. 跳跃游戏
    45. 跳跃游戏 II
    对称的二叉树
    字符型图片验证码,使用tensorflow实现卷积神经网络,进行验证码识别CNN
    python版本升级及pip部署方法
    Two Sum [easy] (Python)
    工作中常用的linux命令(持续更新)
    PAT-1001. 害死人不偿命的(3n+1)猜想 (15)
    C++二维数组的动态声明
    19. Remove Nth Node From End of List(C++,Python)
  • 原文地址:https://www.cnblogs.com/carblack/p/10858884.html
Copyright © 2020-2023  润新知