DefaultListableBeanFactory是一个可以独立运行使用的默认IOC容器实现类。它通过与BeanDefinitionReader建立依赖关系后,在启动期间可对事先准备的元数据(Configuration MetaData,如XML配置信息等)进行加载和解析,将解析后得到的BeanDefinition信息编组成BeanDefinitionHolder对象,最后再将编组对象注册到DefaultListableBeanFactory的本地缓存中。
当DefaultListableBeanFactory拥有必要的装配信息后,可通过getBean方法获取按照装配信息所生产的Bean实例。
类结构关系和作用
如上图所示,DefaultListableBeanFactory作为Bean实例的装配工厂主要由如下15个关键组件共同实现。
接口/实现类 | 作用和特点 |
---|---|
BeanFactory |
基础IOC容器接口,提供访问Bean实例的方法等。 |
HierarchicalBeanFactory |
继承BeanFactory,实现BeanFactory的分层结构关系。 |
AutowireCapableBeanFactory |
继承BeanFactory,实现Bean的自动装配功能。 |
ListableBeanFactory |
1.继承BeanFactory,实现Bean的集合操作功能; |
ConfigurableBeanFactory |
继承HierarchicalBeanFactory,在分层基础上实现BeanFactory的配置管理功能。 |
ConfigurableListableBeanFactory |
继承ListableBeanFactory、AutowireCapableBeanFactory和ConfigurableListableBeanFactory接口,具备这三个接口功能的同时还提供了以下功能: |
AliasRegistry |
注册BeanDefinition的“别名:名称”映射信息。 |
SingletonBeanRegistry |
注册单例Bean实例。 |
BeanDefinitionRegistry |
注册经解析后的BeanDefinition。 |