DefaultListableBeanFactory是整个bean加载的核心,是spring注册及加载bean的默认实现
public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFactory
implements ConfigurableListableBeanFactory, BeanDefinitionRegistry, Serializable {}
DefaultListableBeanFactory层次结构图:
AliasRegistry: 定义了对Alias简单的增删改操作。
SimpleAliasRegitry: /** Map from alias to canonical name */
private final Map
使用了Map作为Alias的缓存,并实现AliasRegistry接口。
SingletonBeanRegistry: 定义对单例的注册获取。
BeanFactory: 获取bean以及bean的isSingleton,isPrototype,isTypeMatch等属性。
DefaultSingletonBeanRegistry: 对SingletonBeanRegistry的实现。
HierarchicalBeanFactory: 继承BeanFactory,在此基础增加了对ParentBeanFactroy的支持,多出BeanFactory getParentBeanFactory();和 boolean containsLocalBean(String name);方法。
BeanDefinitionRegistry: 继承AliasRegitry,定义了对BeanDefinitionRegistry的基本操作。
FactoryBeanRegistrySupport : 继承DefaultSingletonBeanRegistry,并在此基础上增加对FactoryBean的一些操作。
ConfigurableBeanFactory:提供配置Factory的各种方法。
ListableBeanFactory: 获取Bean的配置清单。
AbstractBeanFactory: 综合FactoryBeanRegitrySupport 和 ConfigurableBeanFactory 的功能。
AutowireCapableBeanFactory: 提供创建bean,自动注入,初始化以及应用bean的后处理器。
AbstractAutowireCapableBeanFactory:结合AbstractBeanFactory 和 接口 AutowireCapableBeanFactory。
ConfigurableListableBeanFactory : BeanFactory配置清单,指定忽略类型及接口等。
DefaultListableBeanFactory: 综合上述所有功能,主要是对bean注册后的处理。
第一次画类图,有点丑。。。