1、BeanFactory

其中BeanFactory 作為最頂層的一個(gè)接口類,它定義了IOC 容器的基本功能規(guī)范,BeanFactory 有三個(gè)重要的子類:ListableBeanFactory、HierarchicalBeanFactory 和AutowireCapableBeanFactory。但是從類圖中我們可以發(fā)現(xiàn)最終的默認(rèn)實(shí)現(xiàn)類是DefaultListableBeanFactory,它實(shí)現(xiàn)了所有的接口。
1、ListableBeanFactory 接口表示這些Bean 是可列表化的

2、HierarchicalBeanFactory 表示的是這些Bean 是有繼承關(guān)系的,也就是每個(gè)Bean 有可能有父Bean

3、AutowireCapableBeanFactory 接口定義Bean 的自動(dòng)裝配規(guī)則

這三個(gè)接口共同定義了Bean 的集合、Bean 之間的關(guān)系、以及Bean 行為。
在BeanFactory 里只對(duì)IOC 容器的基本行為作了定義,根本不關(guān)心你的Bean 是如何定義怎樣加載的。
而要知道工廠是如何產(chǎn)生對(duì)象的,我們需要看具體的IOC 容器實(shí)現(xiàn),Spring 提供了許多IOC 容器的實(shí)現(xiàn)。比如GenericApplicationContext , ClasspathXmlApplicationContext 等。
2、BeanDefinition
SpringIOC 容器管理了我們定義的各種Bean 對(duì)象及其相互的關(guān)系,Bean 對(duì)象在Spring 實(shí)現(xiàn)中是以BeanDefinition 來描述的。

3、BeanDefinitionReader
Bean 的解析過程非常復(fù)雜,功能被分的很細(xì),因?yàn)檫@里需要被擴(kuò)展的地方很多,必須保證有足夠的靈活性,以應(yīng)對(duì)可能的變化。Bean 的解析主要就是對(duì)Spring 配置文件的解析。這個(gè)解析過程主要通過BeanDefintionReader 來完成。
