根据源码步骤整理出来的Spring加载流程,从AnnotationConfigApplicationContext开始
public AnnotationConfigApplicationContext(Class<?>... componentClasses) { //加载初始化文件 this(); //注册配置类 register(componentClasses); //IOC容器刷新接口 refresh(); }
具体的步骤见流程图:
创建bean的生命周期,这里用到了三级缓存解决循环依赖,在对象创建填充前后用到了后置处理器。修饰对象用到修饰器模式。