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 时注入