diff --git a/framework-source-code/spring/spring.md b/framework-source-code/spring/spring.md
index e57d0e4..6881090 100644
--- a/framework-source-code/spring/spring.md
+++ b/framework-source-code/spring/spring.md
@@ -1,3 +1,5 @@
+Spring框架源码版本5.3.x
+
### 框架源码的前置知识
* 设计模式
@@ -24,12 +26,14 @@ xxbean.method();
#### SSM框架项目中spring处理bean的主要流程
-* 加载xml文件
-* 解析xml文件
+* 加载bean定义文件,一般是xml文件或者注解
+* 解析bean定义文件
* 封装BeanDefinition
-* 实例化
-* 放到容器中
-* 从容器中获取
+* 处理PostProcessor
+* 准备监听器
+* 创建代理(JDK或者Cglib),使用反射实例化
+* 属性填充和初始化
+* 销毁
容器使用map保存bean,map的key和value内容
|序号| Key | Value |
@@ -39,7 +43,7 @@ xxbean.method();
|3| String | ObjectFactory |
|4| String | BeanDefinition |
-## Spring创建Bean过程中用到的主要接口
+## Spring创建Bean过程中用到的主要接口和类
* BeanDefinitionReader
* BeanDefinition
@@ -52,6 +56,7 @@ xxbean.method();
* Aware
* BeanNameAware
* AbstractAutoProxyCreator
+* ConfigurationClassPostProcessor
#### BeanDefinitionReader
@@ -160,3 +165,6 @@ ApplicationContext可以在其 bean 定义中自动检测 BeanPostProcessor bean
子类可以应用任何策略来决定是否要代理一个 bean,例如 按类型、按名称、按定义详细信息等。它们还可以返回应仅应用于特定 bean 实例的其他拦截器。 一个简单的具体实现是 {@link BeanNameAutoProxyCreator},通过给定名称识别要代理的 bean。
可以使用任意数量的 {@link TargetSourceCreator} 实现来创建自定义目标源:例如,池化原型对象。 即使没有建议,自动代理也会发生,只要 TargetSourceCreator 指定自定义 {@link org.springframework.aop.TargetSource}。 如果没有设置 TargetSourceCreators,或者没有匹配项,默认情况下将使用 {@link org.springframework.aop.target.SingletonTargetSource} 来包装目标 bean 实例。
+
+#### ConfigurationClassPostProcessor
+启动过程中处理@Configuration注解。通过或者标签注册,也可以通过其他BeanFactoryPostProcessor手动注册。他实现了PriorityOrdered接口,@Configuration注解修饰的类中所有具有bean定义的方法在所有BeanFactoryPostProcessor执行之前注册。