容器
DefaultListableBeanFactory(核心容器)
BeanFactory 体系 (获得工厂具有的功能) 查找对象 创建对象(注入)
XXXRegister 注册 (注册-->储存)
存储 BeanDefinitionMap(注册BeanDefinition对象)
ApplicationContext :
1.也是BeanFactory的子接口 具有BeanFactory对应的功能
2.对BeanFactory进行扩展
通过聚合DefaultListablebeanFactory来实现XXXRegistry功能
容器和工厂的关系:
注册BeanDefinition的方式
源码解析AnnotationConfigApplicationContext
this():创建注册器,注册spring提供的BeanPostProcessor和BeanFactoryPostProcessor
this.register(componentClasses): 根据Config类,注册BD
refresh():核心方法
prepareBeanFactory
invokeBeanFactoryPostProcessors
processConfigBeanDefinitions
(ConfigurationClassPostProcessor)