文章目录finishRefreshinitLifecycleProcessorgetLifecycleProcessor().onRefresh();publishEvent(new ContextRefreshedEvent(this));LiveBeansVi
原创 2023-06-30 00:07:41
97阅读
Spring IoC 的核心内容要收尾了,本文将对最后一个方法 finishRefresh 进行介绍,位于refresh 方法中的第九个位置。 本章实际是对发布订阅模式的一种补充,这是Spring在刷新事件完成后发布事件。
原创 精选 2022-03-11 17:15:54
2029阅读
前面讲了往事件管理类中注册事件,那么事件的监听什么时候被触发呢?在事件发布的时候,发布事件时会获取到事件管理类中所有的事件,去循环广播,然后调用事件监听类的onApplicationEvent()方法。在容器加载完成的时候,spring会发布一个ContextRefreshdEvent。 1.ref ...
转载 2021-08-01 19:49:00
109阅读
2评论
在 IoC 容器启动流程中有一个 finishRefresh 方法,具体实现如下:protected void finishRefresh() { clearResourceCaches(); initLifecycleProcessor(); getLifecycleProcessor().onRefresh(); // 向所有监听 ContextRefreshedEvent 事
Spring源码之九finishRefresh详解Spring IoC 的核心内容要收尾了,本文将对最后一个方法 finishRefresh 进行介绍,位于refresh 方法中的第九个位置。本章实际是对发布订阅模式的一种补充,这是Spring在刷新事件完成后发布事件。由于存在上下文关系,本文也会对 initApplicationEventMulticaster 方法、registerListen
转载 6月前
15阅读
目录一、简介二、内置Tomcat启动流程2.1、createApplicationContext()2.2、refreshContext(context) 2.2.1、getWebServerFactory()2.2.2、factory.getWebServer()2.2.3、 finishRefresh()三、总结本篇源码基于spring-boot-2.1.0.RELEASE版本进行分
转载 2024-06-28 08:43:40
147阅读
文章目录一、ApplicationEvent应用二、ApplicationEvent源码分析1. Listener监听器的注册过程2. initApplicationEventMulticaster()3. registerListeners()4. finishBeanFactoryInitialization()5. finishRefresh()三、 小结 Spring中与事件有关的接口和
文章目录一. 刷新容器的源码8.initApplicationEventMulticaster()9. onRefresh()10.registerListeners()11.finishBeanFactoryInitialization()实例化所有单例类(除懒加载)12. finishRefresh一. 刷新容器的源码@Override public void refresh() throw
转载 2024-04-02 15:55:54
55阅读
protected void finishRefresh() { // 为上下文初始化生命周期处理器 initLifecycleProcessor(); // 将刷新事件传播到生命周期处理器 getLifecycleProcessor().onRefresh(); // 发布刷新完毕事件到对应的监听器 publishEvent(new Conte
接上文Spring中refresh分析之finishBeanFactoryInitialization方法详解我们分析过finishBeanFactoryInitialization后,本文分析finishRefresh方法。方法功能梳理:清理前面记录的类资源(因为已经有了BeanDefinition);初始化生命周期处理器,默认是DefaultLifecycleProcessor,并作为单例注册
继续上文Spring Boot 启动流程分析6.10 在所有注册的bean中查找listener beans,注册到消息广播器中.代码如下:6.11  this.finishBeanFactoryInitialization(beanFactory); 初始化剩下的一些单例        6.12 finishRefresh,完
原创 2021-11-18 19:36:42
162阅读
tomcat在springboot的创建点是和启动点如下图spring启动后把容器包装成servletinitial 然后在servletcontext启动好后注入进去 这样spring就和tomcat融合 tomcat启动时候会创建servletcontext给Spring的ioc待着image.png如上图,我们是在onReFresh创建内置tomcat,在finishRefresh启动tom
原创 2023-07-08 15:27:10
157阅读
服务注册入口无论是将服务注册到哪种服务注册中心,服务注册的时机都是在AbstractApplicationContext#finishRefresh()方法中;即Spring容器加载完成、Web服务启动之后;从SpringCloud规范来看,Spring-cloud-common包定义了一套服务注册、发现的规范;服务注册逻辑在ServiceRegistry类中;package org.spring