美文网首页
Spring IOC

Spring IOC

作者: Haipo | 来源:发表于2017-03-18 20:45 被阅读0次

Spring IOC

IOC


IOC我的理解就是一种Bean的全面托管。容器将创建Bean,识别属性,把它们连接在一起,并管理他们的整个生命周期从创建到销毁。

IOC中用于识别、配置、实例化、保存、销毁的使用的就是ApplicationContext。

ApplicationContext

image_1bbgj44471sf711rhmor1b6s1jg59.png-61.3kBimage_1bbgj44471sf711rhmor1b6s1jg59.png-61.3kB

ApplicationContext充当整个容器的上下文。

那这个上下文需要什么功能?

  • Bean的创建和维护
  • 资源的识别
  • 事件的注册和触发

Bean的创建和维护

BeanFactory这个接口用来Bean的创建和维护。这个Bean工厂是一个通用工厂,需要能够构建各种Bean,这里的Bean是指能够被Spring管理的Bean,Spring中可以指定init方法,也就是说并不限制要求实现空参构造函数。

DefaultListableBeanFactory是他的默认的实现类。填充在ApplicationContext接口的Abstract实现中

image_1bbgkqnvtm6j3kmo731vfq1nk013.png-138.3kBimage_1bbgkqnvtm6j3kmo731vfq1nk013.png-138.3kB

ListableBeanFactory接口定义诸如查找Bean、判断Bean存在性的基本方法

image_1bbglhkio6m61lb4lm31l3u83gm.png-90.9kBimage_1bbglhkio6m61lb4lm31l3u83gm.png-90.9kB

HierarchicalBeanFactory接口能拿父类的工厂,实际上相当于允许子类操作父类的Bean工厂

image_1bbglgl641p2vug41h4b1ndp4cg9.png-119.6kBimage_1bbglgl641p2vug41h4b1ndp4cg9.png-119.6kB

ConfigurableBeanFactory接口提供Bean的定制,诸如是Bean是singleton还是prototype,他的类型是啥,有啥注解标识

image_1bbglrmmq13de133ufsc1f6f1j3c13.png-87kBimage_1bbglrmmq13de133ufsc1f6f1j3c13.png-87kB

BeanDefinitionRegistry接口允许Bean定义,注册、删除等流程

image_1bbglv5hn1gi76mqmov1a5k56n1g.png-72.8kBimage_1bbglv5hn1gi76mqmov1a5k56n1g.png-72.8kB

资源的识别,事件的注册和触发


  • 触发相应消息


    image_1bbgmbf7al4d1rd91cidcn51sv11t.png-74.2kBimage_1bbgmbf7al4d1rd91cidcn51sv11t.png-74.2kB
  • 识别流资源


    image_1bbgmebtu1n7g8f1ipqtd317302a.png-174.1kBimage_1bbgmebtu1n7g8f1ipqtd317302a.png-174.1kB
  • 本地化资源


    image_1bbgmgrma10bqrec6a7p5nlsl2n.png-269.8kBimage_1bbgmgrma10bqrec6a7p5nlsl2n.png-269.8kB

补充


ApplicationContext的抽象实现AbstractApplicationContext中使用ApplicationEventMulticaster充当事件发布的角色。

参见上篇 -> Spring中的事件机制

相关文章

网友评论

      本文标题:Spring IOC

      本文链接:https://www.haomeiwen.com/subject/emdpnttx.html