Spring IOC
IOC
IOC我的理解就是一種Bean的全面托管蒸眠。容器將創(chuàng)建Bean铸敏,識別屬性带污,把它們連接在一起,并管理他們的整個生命周期從創(chuàng)建到銷毀痕钢。
IOC中用于識別图柏、配置、實例化任连、保存蚤吹、銷毀的使用的就是ApplicationContext。
ApplicationContext
ApplicationContext充當(dāng)整個容器的上下文课梳。
那這個上下文需要什么功能距辆?
- Bean的創(chuàng)建和維護
- 資源的識別
- 事件的注冊和觸發(fā)
Bean的創(chuàng)建和維護
BeanFactory這個接口用來Bean的創(chuàng)建和維護。這個Bean工廠是一個通用工廠暮刃,需要能夠構(gòu)建各種Bean跨算,這里的Bean是指能夠被Spring管理的Bean,Spring中可以指定init方法椭懊,也就是說并不限制要求實現(xiàn)空參構(gòu)造函數(shù)诸蚕。
DefaultListableBeanFactory是他的默認(rèn)的實現(xiàn)類步势。填充在ApplicationContext接口的Abstract實現(xiàn)中
ListableBeanFactory接口定義諸如查找Bean、判斷Bean存在性的基本方法
HierarchicalBeanFactory接口能拿父類的工廠背犯,實際上相當(dāng)于允許子類操作父類的Bean工廠
ConfigurableBeanFactory接口提供Bean的定制坏瘩,諸如是Bean是singleton還是prototype,他的類型是啥漠魏,有啥注解標(biāo)識
BeanDefinitionRegistry接口允許Bean定義倔矾,注冊、刪除等流程
資源的識別,事件的注冊和觸發(fā)
觸發(fā)相應(yīng)消息
識別流資源
本地化資源
補充
ApplicationContext的抽象實現(xiàn)AbstractApplicationContext中使用ApplicationEventMulticaster充當(dāng)事件發(fā)布的角色柱锹。