spring容器的实现继承关系
每一个类在bean实例化中的作用:
1、AlisaRegistry:对alias得简单增删改查等操作
2、SimpleAliasRegistry:主要使用map作为alias的缓存,并对接口AliasRegistry功能实现;
3、SingletonBeanRegistry:单例的注册及获取
4、banFactory:获取bean及bean的各种属性,如bean的类型,alias等
5、beanDefinitionRegistry:对beanDefinition增删查等操作,beanDefinition的实现类有三种,GenericBeanDefinition、RootBeanDefinition、ChildBeanDefinition,根据名称可以知道每种实现代表的意思
6、DefaultSingletonBeanRegistry:继承了SimpleAliasRegistry,实现了singletonBeanRegistry各函数,其中在分析bean创建的时候,单例的获取是重点
7、HierarchicalBeanRegistry:继承beanFactory,在beanFactory功能的基础上增加了对parentFactory的支持
8、FactoryBeanRegistrySupport:继承了DefaultSingletonBeanRegistry,增加了对FactoryBean的特殊处理功能
9、configurableBeanFactory:提供配置beanFactory的各种方法,如:类加载器,解析器,转换器等各种对Factory的配置
10、ListableBeanFactory:根据各种条件获取bean的配置清单
11、AbstractBeanFactory:综合configurableBeanFactory和FactoryBeanRegistrySupport的功能
12、AutowireCapableBeanFactory:继承beanFactory,主要工作是bean创建,自动注入,初始化及应用bean后处理器等操作
13、abstractAutowireCapableBeanFactory:继承了abstractBeanFactory,并且实现了AutowireCapableBeanFactory的功能
14、DefaultListableBeanFactory:综合了以上所有的功能,主要实现了对bean注册后的处理