从BeanFactory接口出发,我们了解了其体系结构,首先了解它的三个直系亲属:
ListableBeanFactory(可列举的bean工厂(多花样查询,涉及到了BeanDefiniton,这里仅仅开放了获取的接口,而没有开放设置的接口);
HierarchicalBeanFactory(分层次容器,获取父容器,检查是否含有本地bean,一样只开放了获取接口);
AutowireCapableBeanFactory(自动装配容器),定义了注入的三种方式,并提供了createBean()方法以及初始化bean的方法,执行bean的后置处理器方法;
这三个直系亲属下面又派生了两个复杂的容器:ConfigurableBeanFactory 和 ConfigurableListableBeanFactory 两个容器都是以可配置为主题的容器;
ConfigutableBeanFactory: 提供了前面三个基类中开放获取接口对应的设置接口,并提供了设置**改工厂的父工厂**(也是分层工厂子类的一种实现)、**设置bean的类加载器**(和临时加载器)、**设置工厂是否开启缓存**、设置**bean definition 指定表达式解析策略**等等;
ConfigurableListableBeanFactory: 主要实现了自动装配的配置、获取BeanDefinition、和工厂缓存管理等一些功能.