IOC控制反转
ApplicationContext
ClassPathXmlApplicationContext
AnnotationConfigApplicationContext
WebApplicationContext
BeanDefinition
XmlBeanDefinition
AnnotationConfigDefinition
BeanDefinitionReader
XmlBeanDefinitionReader
应该在DI中才用到
BeanWraper
就是配置文件BeanDefinitionMap
DI是从哪里开始?
getBean() 为什么?因为Spring默认是懒加载
实例化,有两种情况
目标类配置了AOP 代理对象
目标类没有配置AOP,原生对象
由这个方法发实例化对象的动作
instantiateBean()
由这个方法发起依赖注入的动作
populateBean()
factoryBeanInstanceCache 用来存储BeanWraper的Map
factoryBeanObjectCache 用来存原生的Bean的Map
BeanDefinationMap 用来存储BeanDefinitionmap 存储配置信息