Spring是分层的full-stack轻量级开源框架,以IOC和AOP为内核
经常所说的Spring是指Spring framework
spring官网
IOC和AOP的作用
Spring-Core包含了Bean Core Context Expression
整个Spring的继承关系如下图,context继承了aop,aop继承了beans,beans继承了core,调用context时候,同时调用上级。
什么是IOC以及IOC和DI的区别。
IoC(Inversion of Control):控制反转,它还有一个别名为DI
DI(Deoendency Injection)依赖注入。
IOC就是由Spring IoC容器来负责对象的生命周期和对象之间的关系。
之前是用new一个对象的方式来创建对象,也就是说依赖的对象直接由程序员自己控制,但是有了IoC之后,由IoC容器控制对象的创建。没有Ioc的时候程序员都是在自己的对象中去主动i创建被依赖的对象,这是正传,但是有了IOC之后,所依赖的对象都是直接由IOC容器创建后注入到被注入的对象中,依赖的对象由原来的主动获取变为被动接受,所以是反转。
三种方式。
或者这样,容器层次。
生命周期。
beandefinition对xml解析,然后实例化
加载bean定义信息:beandefinition对xml解析
BeanFactoryPostProcessor:接口,可以获取beandefinition并修改
三级缓存机制:解决循环依赖配置解析阶段有以下步骤
XmlBeanDefinitionReader把xml解析为document文件,DefaultBeanDefinitionDocumentReader将内容注册到容器中。
整个文件目录以及运行结果如下所示。