【文件属性】:
文件名称:Spring启动流程.java
文件大小:31KB
文件格式:JAVA
更新时间:2020-06-19 16:05:53
Spring 启动流程 Spring 启动流程
AbstractApplicationContext.refresh(){
1.为刷新准备此上下文
prepareRefresh(){
initPropertySources();//在上下文环境中初始化任何占位符属性源
getEnvironment().validateRequiredProperties();//验证所有标记为必需的属性都是可解析的
this.earlyApplicationEvents = new LinkedHashSet<>();//保存容器中的一些早期的事件;在下面第10步会发布这些事件。
}
2.告诉子类刷新内部bean工厂。
ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory(){
GenericApplicationContext.refreshBeanFactory(){//Do nothing ,设置id
this.beanFactory.setSerializationId(getId());
}
GenericApplicationContext.getBeanFactory(){
return this.beanFactory= new DefaultListableBeanFactory();//创建一个beanFactory
}
}
3.准备bean工厂以供在此上下文中使用。配置工厂的标准上下文特征,例如上下文的类加载器和后置处理器。
prepareBeanFactory(beanFactory){
.
.
.