1.坚持看完一个框架的源码,后面的会一通百通。
2.掌握正确读源码的方法。
Spring 面试一般会问这两方面的问题
IOC
AOP
要看懂AOP的源码就必须看懂IOC的源码。
IOC-是人就会说
控制反转,原来控制创建对象的时候,是需要我们自己来创建的。
而现在我们不需要了,由spring容器自动的给我们创建。我们需要的时候直接从spring容器中获取就行。
里面的核心点,没几个人说的出来。
Spring对象的创建方式,
对象创建需要经历什么样的流程。
面试常见的几个问题
聊聊spring
说明bean的生命周期
循环依赖
三级缓存
FactoryBean和beanFactory
ApplicationContext和BeanFactory的区别
设计模式
什么是beanPostProcess和beanFactoryPostProcess,干啥的,执行流程?
spring是springboot和springCloud的拓展。
提到Spring就是IOC容器,用来放bean.用map来存放bean,map(三级缓存)。
存放的是K-V形式的数据
创建对象
获取对象
beanName
Bean实例对象
创建对象的方式
new
工厂
反射
Spring创建对象的方式,创建哪些对象。
xml文件的bean标签,根据bean的描述信息创建对象。Spring采用的是反射的方式,有工厂有反射的创建bean对象。
这个xml文件存在的意义。
实例化
在堆中开辟一块空间,属性都是默认值
初始化
在堆中开辟一块空间,属性都是默认值,给属性完成赋值操作。这其中又有两个操作。
填充属性,赋值。
调用具体的初始化方法。
BeanPostProcessor:增强器、后置处理器。这些都是为了拓展实现的。
Environment
为了方便使用,在容器创建的时候会提前加载系统的相关属性,加载到StandardEnvironment对象中,方便后续使用。
env
properties
如果我需要在bean对象的创建过程中,详细了解每一个步骤完成的进度,我应该怎么做?在不同的阶段要做不同的进度工作,应该怎么办?
用到观察者模式:监听器、监听事件。