本文基于spring-5.2.5
spring加载bean的大致过程如下:
(1)转换对应beanName;
(2)尝试从缓存中加载单例;
(3)原型模式的依赖检查;
(4)检测parentBeanFactory;
(5)将存储xml配置文件的GernericBeanDefinition转换成RootBeanDefinition;
(6)寻找依赖;
(7)针对不同的scope进行bean的创建;
(8)bean的类型转换;
下面从读取下图获取bean开始。
点击进入getBean方法:
进入到BeanFactory接口的getBean方法。该方法由它的实现类AbstractBeanFactory进行实现。AbstractBeanFactory类继承结构如下图: