简单来说一共四步:
- 实例化
- 设置属性
- 初始化
- 结束罪恶的一生
设置属性是为了解决循环依赖问题,简单来说就是先new一个对象,如果这个对象依赖对象B,实例化阶段先不管B,也就是说实例化阶段,对象B并没有set进来,而是所有的对象全部都new完之后再去把B对象set进来,所有的属性set完成之后,就能把所有的对象都放到map中了,全都set完之后,就可以使用了。在整个过程中,每个阶段都有前置方法和后置方法,这就能看出来spring框架的抽象之处,会想到你会干一些坏事,所以入口都为你准备好了,去干吧!!