zoukankan      html  css  js  c++  java
  • 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的时候。我们可以通过对预实例化的配置来规定依赖注入的发生时间。 

  • 相关阅读:
    信息搜集与漏洞扫描
    ASN.1分析Alipay证书
    任务计划
    2020系统综合实践 期末大作业 21组
    2020系统综合实践 第6次实践作业 2组
    第5次实践作业
    第4次实践作业
    第3次实践作业
    第2次实践作业
    第1次实践作业
  • 原文地址:https://www.cnblogs.com/carblack/p/10858884.html
Copyright © 2011-2022 走看看