Springboot自动装配流程图及源码

在这里插入图片描述
流程总结两大部分:prepareContext + refreshContext
1.prepareContext
1.1 load方法,将启动类封装为beanDefinition注册到bedefinitionMap
2.refreshContext
2.1 invokeBeanFactoryPostProcessor
2.1.1 parse方法,递归扫描启动类上注解,确定basePackage,加载构件注解修饰的类
2.1.2 扫描解析@Import 将需要自动装配的class信息加载,最终注册到beanDefinitionMap

第一部分源码

主要方法:prepareContext–>load()
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

第二部分源码

主要方法:refreshContext()—>refresh()–>invokeBeanFactoryPostProcessors()–> parse()
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
所有注册信息已准备完毕,refresh中的
// Instantiate all remaining (non-lazy-init) singletons.
finishBeanFactoryInitialization(beanFactory); 方法会将所有非懒加载的bean反射创建…

最后在来看一下SpringBoot启动类注解

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/GiantCrocodile/article/details/124799016