SpringBoot中refreshContext核心方法

SpringBoot中refreshContext核心方法讲解

          • refreshContext:以下是十三个子方法调用

refreshContext:以下是十三个子方法调用

SpringBoot中refreshContext核心方法_第1张图片

方法一:
this.prepareRefresh();
## 该方法主要作用:
			1、设置容器的状态 
			2、初始化属性设置(应用监听器) 
			3、检查必备属性是否存在

SpringBoot中refreshContext核心方法_第2张图片
SpringBoot中refreshContext核心方法_第3张图片

方法二: this.obtainFreshBeanFactory();
		该方法主要作用:
			1、设置beanFactory序列化id
			2、获取beanFactory

SpringBoot中refreshContext核心方法_第4张图片
SpringBoot中refreshContext核心方法_第5张图片

方法三:this.prepareBeanFactory(beanFactory);
	作用:主要是对beanFactory做一些配置包括各种类加载器和需要忽略的依赖	
	1、设置beanFactory一些属性
	2、添加后置处理器
	3、设置忽略的自动装配接口
	4、注册一些组件

SpringBoot中refreshContext核心方法_第6张图片

方法四:this.prepareBeanFactory(beanFactory);
	作用:注册web请求相关的处理器(一般情况下,启动是为空的)
		1、子类重写以在BeanFactory完成创建后做进一步设置
方法五:this.invokeBeanFactoryPostProcessors(beanFactory);
	作用:
		1、调用BeanDefinitionRegistryPostProcessor实现向容器内添加bean的定义
		2、用BeanFactoryPostProcessor实现向容器内Bean的定义的添加属性

SpringBoot中refreshContext核心方法_第7张图片
SpringBoot中refreshContext核心方法_第8张图片
SpringBoot中refreshContext核心方法_第9张图片
SpringBoot中refreshContext核心方法_第10张图片

方法六:this.registerBeanPostProcessors(beanFactory);
	作用:
		1、找到BeanPostProcessor的实现
		2、排序后注册到容器内
方法七:this.initMessageSource();
	作用:
		1、初始化国际化相关属性

SpringBoot中refreshContext核心方法_第11张图片

方法八:this.this.initApplicationEventMulticaster();
	作用:
		1、初始化事件广播器

SpringBoot中refreshContext核心方法_第12张图片

方法九:this.onRefresh();
	作用:该方法是一个空实现,是留给子类实现的。
		1、主要内容是创建web容器

SpringBoot中refreshContext核心方法_第13张图片
SpringBoot中refreshContext核心方法_第14张图片

方法十:this.registerListeners();
	作用:
		1、添加容器内事件监听器至事件广播器中
		2、派发早期事件

SpringBoot中refreshContext核心方法_第15张图片
SpringBoot中refreshContext核心方法_第16张图片

方法十一:this.finishBeanFactoryInitialization(beanFactory);
	作用:
		1、初始化所有剩下的单例bean
方法十二:this.finishRefresh();
	作用:
		1、清空缓存
		2、初始化生命周期处理器
		3、调用化生命周期处理器onRfresh方法
		4、发布ContextRefreshedEvent事件
		5JXM相关处理
		

SpringBoot中refreshContext核心方法_第17张图片

方法十三:this.resetCommonCaches();
	作用:清除缓存

SpringBoot中refreshContext核心方法_第18张图片

你可能感兴趣的:(SpringBoot)