BeanFactory是一个顶级接口,下面看下它是干什么的。
ide
这里说了,它是访问Spring Bean容器的根接口,是Bean容器的基本视图。spa
它的一些子接口,好比ListableBeanFactory和ConfigurableBeanFactory都有特别的并且不一样的用途。对象
实现了这个接口的对象维护了许多的Bean定义,每个Bean定义用一个名字来惟一标识。blog
下面看一下它的子接口以及实现类继承
有三个子接口直接继承自BeanFactory,他们分别是ListableBeanFactory、HierarchicalBeanFactory和AutowireCapableBeanFactory。
接口
下面分别看一下它们各自有什么样的用途:文档
在这个接口的注释中说了,说这是BeanFactory的一个扩展接口,它能够列举出全部的Bean示例,而不是当客户端请求的时候去根据名字一个一个的查找。get
HierarchicalBeanFactory是一种可以分层的Bean Factory。什么意思呢?什么叫有层级?什么叫分层?个人理解是,能够被继承。it
AutowireCapableBeanFactory有自动装配的能力。io
最后,咱们看一下DefaultListableBeanFactory
这个类直接或间接的实现了那三个接口,也就是说上面说的三种特性它都有。
文档中也说了,他是一个成熟的Bean Factory。
它最典型的用法是在Bean被访问以前注册全部的Bean。所以,在一个本地的Bean定义表中查找是很廉价的操做。