1.BeanFactory和它的子接口

2.BeanFactory相关 - 图2
image.png

1.1.BeanFactory接口

2.HierarchicalBeanFactory(层次性的BeanFactory)

image.png
getParentBeanFactory() ,它就可以获取到父 BeanFactory 对象;
containsLocalBean(String name) ,它是检查当前本地的容器中是否有指定名称的 Bean ,而不会往上找父 BeanFactory 。

3.ListableBeanFactory(可列举的BeanFactory)

此接口中的大部分方法不适合频繁调用

4.AutowireCapableBeanFactory(支持自动注入的BeanFactory)

它是 BeanFactory 接口的扩展实现,它可以实现自动装配,前提是开发者希望为现有的 bean 实例公开此功能。
AutowireCapableBeanFactory 本身可以支持自动装配,而且还可以为现有的一些 Bean 也能支持自动装配。而这个“现有”的概念,实际上指的是那些不被 SpringFramework 管理的 Bean ,下面两段话就有解释。

4.1AutowireCapableBeanFactory用于框架集成

2.BeanFactory和它的实现类

2.BeanFactory相关 - 图52.1AbstractBeanFactory是最终BeanFactory的基础实现

这个类主要实现了 两个方法, getBeanDefinition和createBean,分别为给定的bean名称检索bean定义信息,并根据给定的bean定义信息创建bean的实例,这些操作的默认实现可以在 DefaultListableBeanFactory 和AbstractAutowireCapableBeanFactory 中找到。

2.2AbstractAutowireCapableBeanFactory (AutowireCapableBeanFactory 的落地实现)

这个类可以实现组件的自动装配

2.3DefaultListableBeanFactory(BeanFactory的落地实现)