git checkout step-2-abstract-beanfactory-and-do-bean-initilizing-in-it
上一篇中的bean是初始化好之后再set進去的,實際使用中,我們希望容器能自動管理bean的生命周期,于是我們可以將bean的初始化放入Beanfactory,為了保證擴展性,我們使用Extract Interface的方法,將BeanFactory替換成接口,而使用AbstractBeanFactory和AutowireCapableBeanFactory作為其實現(xiàn)。"AutowireCapable"的意思是“可自動裝配的”,為我們后面注入屬性做準備。

image.png
我們看下AutowireCapableBeanFactory做了什么

image.png
繼承了AbstractBeanFactory 抽象工廠

image.png
實現(xiàn)了工廠類的registerBeanDefinition 也就是將BeanDefinition 對象投放到beanDefinitionMap

image.png