2019獨角獸企業重金招聘Python工程師標準>>>
1、BeanDefinition 對依賴翻轉模式中管理對象依賴關系的數據抽象
- 實現依賴翻轉功能的核心數據結構
- 依賴翻轉功能都是圍繞對BeanDefinition 處理完成的
- 有了這些BeanDefinition 基礎數據結構,容器才能發揮作用
2、BeanFactory 定義了IOC 容器的基本功能規范
- IOC容器最基本形式
- 遵守的基本契約
- 最底層最基本編程規范
- 僅僅是一個接口
DefaultListableBeanFactory、XmlBeanFactory、ApplicationContext等都是附加了某種功能的具體實現
- DefaultListableBeanFactory 包含了ioc 的重要功能(容器系列中的一個基本產品)
3、FactoryBean 和BeanFactory
- 前者是一個Bean
- 后者是IOC 容器(對象工廠),一個Factory
4、XmlBeanFactory原理
- 提供了最基本的ioc 容器的功能
- 讀取XML 形式?BeanDefinition 的ioc 容器
- XMLDefinitionReader 處理xml 形式的BeanDefinition
- 信息來源有 Resource類來給出
- Resource 類是封裝io操作的類
- loadBeanDefinitions 方法:ioc 容器初始化重要方法
?
5、BeanFactory 和ApplicationContext
- BeanFactory 實現是ioc 容器基本形式
- ApplicationContext 是高級形式(具有增強特性)
6、ioc 容器初始化
- BeanDefinition 的Resource 定位、載入和注冊
- 這三個過程使用不同模塊完成
BeanDefinition? 的資源定位 由ResourceLoader 通過統一形式Resource接口完成
- BeanDefinition? 存在形式:FileSystemResource、ClassPathResource等
BeanDefinition 載入:把用戶定義好的Bean 表示成ioc 容器的數據結構,即BeanDefinition
- pojo對象在ioc 容器內部的抽象
BeanDefinition? 注冊:BeanDefinitionRegistry 接口的實現類來完成的
- ioc 容器內部是通過一個HashMap 持有這些對象的
ioc 容器初始化和上下文初始化一般不包括依賴注入
- lazyInit屬性,會在第一次getBean 時注入
?