Spring IOC
IOC
IOC我的理解就是一种Bean的全面托管。容器将创建Bean,识别属性,把它们连接在一起,并管理他们的整个生命周期从创建到销毁。
IOC中用于识别、配置、实例化、保存、销毁的使用的就是ApplicationContext。
ApplicationContext
image_1bbgj44471sf711rhmor1b6s1jg59.png-61.3kBApplicationContext充当整个容器的上下文。
那这个上下文需要什么功能?
- Bean的创建和维护
- 资源的识别
- 事件的注册和触发
Bean的创建和维护
BeanFactory这个接口用来Bean的创建和维护。这个Bean工厂是一个通用工厂,需要能够构建各种Bean,这里的Bean是指能够被Spring管理的Bean,Spring中可以指定init方法,也就是说并不限制要求实现空参构造函数。
DefaultListableBeanFactory是他的默认的实现类。填充在ApplicationContext接口的Abstract实现中
image_1bbgkqnvtm6j3kmo731vfq1nk013.png-138.3kBListableBeanFactory接口定义诸如查找Bean、判断Bean存在性的基本方法
image_1bbglhkio6m61lb4lm31l3u83gm.png-90.9kBHierarchicalBeanFactory接口能拿父类的工厂,实际上相当于允许子类操作父类的Bean工厂
image_1bbglgl641p2vug41h4b1ndp4cg9.png-119.6kBConfigurableBeanFactory接口提供Bean的定制,诸如是Bean是singleton还是prototype,他的类型是啥,有啥注解标识
image_1bbglrmmq13de133ufsc1f6f1j3c13.png-87kBBeanDefinitionRegistry接口允许Bean定义,注册、删除等流程
image_1bbglv5hn1gi76mqmov1a5k56n1g.png-72.8kB资源的识别,事件的注册和触发
触发相应消息
image_1bbgmbf7al4d1rd91cidcn51sv11t.png-74.2kB
识别流资源
image_1bbgmebtu1n7g8f1ipqtd317302a.png-174.1kB
本地化资源
image_1bbgmgrma10bqrec6a7p5nlsl2n.png-269.8kB
补充
ApplicationContext的抽象实现AbstractApplicationContext中使用ApplicationEventMulticaster充当事件发布的角色。
网友评论