git checkout step-2-abstract-beanfactory-and-do-bean-initilizing-in-it
上一篇中的bean是初始化好之后再set进去的,实际使用中,我们希望容器能自动管理bean的生命周期,于是我们可以将bean的初始化放入Beanfactory,为了保证扩展性,我们使用Extract Interface的方法,将BeanFactory替换成接口,而使用AbstractBeanFactory和AutowireCapableBeanFactory作为其实现。"AutowireCapable"的意思是“可自动装配的”,为我们后面注入属性做准备。
我们看下AutowireCapableBeanFactory做了什么
继承了AbstractBeanFactory 抽象工厂
实现了工厂类的registerBeanDefinition 也就是将BeanDefinition 对象投放到beanDefinitionMap