sping IOC的设计原理和高级特性

  1. IOC 是Spring的内核,字面意思是控制反转,并提出了DI依赖注入的概念。

  2.Spirng 容器的设计中,一个是实现BeanFactory 接口的简单饿汉容器,另外一个是比较高级的ApplicationContext 应用上下文,在这基础上增加了许多面向

   框架的特性。

  BeanFactory 的使用

  3.spring 定义了BeanDefinition 来管理基于Spring应用的各种对象,来管理管理他们之间的依赖关系。

  4.在BeanFactory 有三个子类:

    ListableBeanFactory(bean 的集合)、HierarchicalBeanFactory(bean之间的关系) 和AutowireCapableBeanFactory(bean的行为)。他们主要是问

    了区分在Spring操作对象的过程中,对对象数据访问的限制。DefaultListableBeanFactory(实现了上面所有的接口)

  5.在BeanFactory 的基础上面,spring提供了一系列容器的实现供开发者使用,XmlBeanFactory 继承DefaultListableBeanFactory,它是一个以读取xml文件方式定义

    BeanDefinition 的IOC的容器

  ApplicationContext 上下文  他除了提供IOC的基本功能之外,还提供了一些附加功能,实现国际化、访问资源、支持应用事件、。

  6. 依赖注入的时间

    用户第一次索要Bean的时候触发依赖注入,当用户在bean中配置lazy-init,在容器解析注册bean 的时候,触发依赖注入。

  7. 在BeanFactory中我们看到getBean()函数,它的具体实现在AbstractBeanFactory中。如果容器创建的bean是单例模式,则直接从缓存中拿,如果没有则取,则直接

    进行创建。

    

    

原文地址:https://www.cnblogs.com/chengyangyang/p/10844374.html