IOC:缓存的地方,得把它存起来(Map容器) DI:getter、setter、constructor(反射、invoker) AOP:为了增强原始Bean的功能(代理技术)
Context是入口
定位 用的 Reader 结尾的
加载 BeanDefinition保存类信息,包括OOP关系
注册 Factroy、Context 就是把用户所定义的Bean放到IOC容器中(Map)
围绕Bean来展开 BeanFactory来创建的
reader load
do开头的都是具体干活
ClassPathXmlApplicationContext 通过main方法启动
DispatchServlet
FileSystem
Plugin
Lisenter
parseBeanDefinitions 方法实际是解析xml,把xml中的内容变成BeanDefinition
BeanDefinition 相当于是保存在内存中的配置文件,保存了所有的跟类属性相关信息 依赖注入,就是把BeanDefinition中的信息读取出来,利用反射机制,或者代理机制创建对象,新创建的对象,不会放到我们印象中的IOC容器中,它存入到另外一个cache容器
Wrapper对原生对象的包装,通过构造方法存储原始对象,放入cache的只是Wrapper
减少代码侵入,能够在原生的基础之上,再进行扩展,监听器、回调函数、标记信息
================================================================
原生 Bean: 通过反射或者代理机制创建的Bean
BeanDefinition: 静态配置文件的一个内存版本,保存了所有的OOP关系
BeanWrapper: 是原生Bean的包装,通过构造方法实现包装,真正操作的是Wrapper
FacoryBean:是Spring中最顶层接口,只要是通过工厂创建Bean,都要实现FacotryBean