一、前言

先参考之前写的几篇

1、spring源码解析

2、spring循环依赖源码分析

image-20220604225009987

在手写的过程中会剔除 Spring 源码中繁杂的内容,摘取整体框架中的核心逻辑,简化代码实现过程,保留核心功能,例如:IOC、AOP、Bean生命周期、上下文、作用域、资源处理等内容实现。

Spring Bean 在容器的生命周期

流程图

实例化->设置属性->初始化Bean对象->销毁

BeanDefinition 的解析过程

时序图

Bean 的生命周期

img