Spring容器初始化过程

1.prepareRefresh():初始化placeholder source,校验xml文件

2.创建bean容器,加载并注册bean。(bean并没有完成初始化,bean实例化未完成)

初始化一个DefautlListableBeanFactory,加载BeanDefintion到BeanFactory

3.prepareBeanFacotory:设置beanFactory的加载器,设置beanExpressionResovle,添加beanPostProccessort,实现了Aware相关接口,会负责回调。

为bean赋值,设置BeanFactory,ResourceLoader,ApplicationContextEventPublisher,ApplicationContext.注册ApplicationListenerDetector事件监听器。

注册一些特殊的bean(environment, systemProperties,systemEnvironment)

4.初始化单例bean,设置bean的属性,aware接口回调,BeanPostProccessor处理

原文地址:https://www.cnblogs.com/lijiale/p/12897130.html