Spring简单来说,是一个bean的容器,在spring启动的时候根据配置自动生成java类的对象,并保存在Spring中。这个储存java对象的类就是Spring的BeanFactory,最常用的实现类是DefaultListableBeanFactory
DefaultListableBeanFactory类图
- AliasRegistry: 定义对alias的简单增删改查操作
- SimpleAliasRegistry: 实现了了AliasRegistry接口,通过map作为缓存
- SingletonBeanRegistry: 定义对单例的注册,获取
- BeanFactory: 定义获取bean及获取bean的各种属性
- DefaultSingletonBeanRegistry: 实现了SingletonBeanRegistry
- HierarchicalBeanFactory: 在BeanFactory的基础上增加了parentFacotry
- BeanDefinitionRegistry: 定义对BeanDefinition的各种增删改操作
- FactoryBeanRegistry: 在DefaultSingletonBeanRegistry基础上增加了对FactoryBean的特殊功能处理
- ConfigurableBeanFactory: 提供配置Factory的方法
- ListableBeanFactory: 定义通过各种条件获取bean的方法
- AbstractBeanFactory:综合FactoryBeanRegistrySupport和ConfigurableBeanFactory的方法
- AutoWireCapableBeanFactory:提供创建bean,自动注入,初始化以及应用bean的后处理器
- AbstractAutowireCapableBeanFactory: 综合AbstractBeanFactory以及实现了AutowireCapableBeanFactory接口
- ConfigurableListableBeanFactory: BeanFactory配置清单,制定忽略类型及接口
- DefaultListableBeanFactory: 综合以上所有功能,主要是对Bean注册后的处理