1.DefaultListableBeanFactory
XmlBeanFactory继承于DefaultlistatleBeanFactory,DefaultlistatleBeanFactory是整个bean加载的核心部分,也是spring加载及注册bean的默认实现,而对于XmlBeanFactory与DefaultListableBeanFactory不同的是在xmlBeanFactory中使用了自定义的xml读取器xmlBeanDefinitionReader,实现了个性化的BeanDefinitionReader读取。DefaultListbleBeanFactrory继承了AbstractAutowireCapableBeanFactory并实现了ConfigurableListableBeanFactory以及BeanDefinitionRegistry接口。
AliasRegistry:定义对alias的简单增删改等操作
SimpleAliasRegistry:主要使用map作为alias的缓存,并对接aliasRegistry进行实现
SingletonBeanFactory:定义对单例的注册和获取
BeanFactory:定义获取bean及bean的各种属性
DefaultSingletionBeanRegistry:对接口SingletonBeanRegistry的各函数的实现
HierarchicalBeanFactory:继承BeanFactory,也就是在BeanFactory定义的功能上增加了对parentFactory的支持
BeanDefinitionRegistry:定义对BeanDefinition的各种增删改操作
FactoryBeanRegistrySupport:在DefaultSingletonBeanRegistry基础上增加了对FactoryBean的特殊处理功能
ConfigurableBeanFactory:提供配置Factory的各种方法
ListableBeanFactory:根据各种条件获取bean的配置清单
AbstractBeanFactory:综合FactoryBeanRegistrySupport和ConfigurableBeanFactory的功能
AutowireCapableBeanFactory:提供创建bean,自动注入,初始化以及应用bean的后处理器
AbstractAutowireCapableBeanFactory:综合AbstractBeanFactory并对接口Autowire CapableBeanFactory进行实现。
ConfigurableListableBeanFactory:BeanFactory配置清单,指定忽略类型及接口等
DefaultListableBeanFactory:综合上面所有功能,主要是对bean注册后的处理
XmlBeanFactory对DafaultListableBeanFactory类进行了扩展,主要用于人xml文档中读取BeanDefinition,对于注册及获取bean都是使用从父类DefaultListableBeanFactory继承的方法去实现,而唯独与父类不同的个性实现就是添加了XmlBeanDefinitionReader类型的reader属性。在XmlBeanFactory中主要使用reader属性对资源文件进行读取和注册。