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定義表中查找是很廉價的操做。