spring源码解析

2022-10-25 16:05:20 浏览数 (2)

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

0 人点赞