首页 > 其他分享 >核心子方法10: registerListeners()方法详解

核心子方法10: registerListeners()方法详解

时间:2024-03-26 13:44:06浏览次数:20  
标签:earlyEventsToProcess 10 ApplicationListener getApplicationEventMulticaster liste

先总结: 该方法主要用于注册监听器, 在所有注册的bean中查找listener监听器bean, 注册到消息广播器中

1.遍历应用程序中存在的监听器集合,并将对应的监听器添加到监听器的多路广播器中

for (ApplicationListener<?> listener : getApplicationListeners()) {          
     getApplicationEventMulticaster().addApplicationListener(listener);
}

2.从容器中获取所有实现了ApplicationListener接口的bd的bdName, 放入ApplicationListenerBeans集合中

1 String[] listenerBeanNames = getBeanNamesForType(ApplicationListener.class, true, false);
2 for (String listenerBeanName : listenerBeanNames) {             
3   getApplicationEventMulticaster().addApplicationListenerBean(listenerBeanName);
4 }

3.发布早期应用程序事件

1 Set<ApplicationEvent> earlyEventsToProcess = this.earlyApplicationEvents;
2         this.earlyApplicationEvents = null;
3         if (!CollectionUtils.isEmpty(earlyEventsToProcess)) {
4             for (ApplicationEvent earlyEvent : earlyEventsToProcess) {
5                 getApplicationEventMulticaster().multicastEvent(earlyEvent);
6         }
7 }

 

标签:earlyEventsToProcess,10,ApplicationListener,getApplicationEventMulticaster,liste
From: https://www.cnblogs.com/superpiter/p/18096501

相关文章

  • JAVA接口详解
    一,抽象类抽象类为用abstract修饰的类1,定义的成员变量与普通的类没有区别2,抽象类不可以被实例化3,当一个类不具体描述某个对象时,可以定义为抽象类4,如果一个类包含抽象方法,则这个类必须是抽象类,没有抽象方法,也可以被称为抽象类5,一个方法可以被修饰为abstract,这个方法可以不......
  • 数据结构——二叉搜索树详解
    一、二叉搜索树定义二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:1.非空左子树上所有节点的值都小于根节点的值。2.非空右子树上所有节点的值都大于根节点的值。3.左右子树也都为二叉搜索树。如下图所示:二、二叉搜索树的操作二叉搜索树结构:t......
  • 函数是什么?C++函数详解!
    1、函数的声明和定义在复杂的程序中,如果全部的代码都写在main函数中,main函数体将非常庞大臃肿。把任务分工到其它的函数中,main函数只负责程序的核心流程,具体的任务由其它函数完成。这种思想就是模块化编程。声明和定义函数的语法:返回值的数据类型函数名(参数一的数据类型......
  • 核心子方法6: registerBeanPostProcessors(beanFactory)方法详解
    先总结: 该方法用于创建并注册Bean后处理器,先获取创建beanFactory中的BeanPostProcessor, 排序后注册到beanFactory中(beanFactory.addBeanPostProcessor(postProcessor)), 用于后面创建bean对象时使用注: 这里不会调用执行BeanPostProcessor, 在创建bean对象getBean->doG......
  • 详解SSL证书系列(6)了解HTTP及网络基础
    使用HTTP协议访问Web你知道当我们在网页浏览器(比如Chrome)的地址栏中输入URL时,Web网页是如何呈现的吗? Web页面当然不会凭空显示出来。根据Web浏览器地址栏中指定的URL,Web浏览器从Web服务器端获取文件资源等信息,从而显示出Web页面。像这种通过发送请求然后获取服务器资源的Web......
  • CocosCtreator知识点4:Creator中的坐标系和节点属性详解
    Creator中的坐标系和节点属性详解在CocosCreator中,游戏场景(Scene)是开发时组织内容的基础,也是呈现给玩家所有游戏内容的载体。而节点是场景的基础组成单位。可以把场景理解为组织内容的空间或平台,所有的内容(节点)通过其位置属性确定在该空间中的某个位置呈现。而为了确定空间......
  • Windows 10无法登录Xbox及其附属产品(包括但不限于Game Bar,Minecraft Launcher)
     1. 问题描述:打开Xbox(如下图) 或GameBar(如下图)  后,单击登录,会弹出一个窗口,印有自己账户的头像,下方一行小字“欢迎回来,$昵称$”,如下图所示:  单击唯一的绿色按钮“现在就开始吧”,该窗口消失,马上又回到点击登录前的界面。循环尝试结果都不变。2.解决方法第一步......
  • DW1000是什么--超宽带 (UWB) 低功耗、低成本收发器 IC 适用于定位标签精准定位
    超宽带技术是一种全新的、与传统通信技术有极大差异的通信新技术。它不需要使用传统通信体制中的载波,而是通过发送和接收具有纳秒或纳秒级以下的极窄脉冲来传输数据。FCC对UWB系统的定义为带宽>500MHz且载波中心频率>2.5GHz。DW1000是一款完全集成的单芯片超宽带(UWB)低功耗......
  • 【机器学习】贝叶斯上篇(详解)
    深入理解贝叶斯学习:核心原理及应用全解析在机器学习的领域内,贝叶斯学习作为一种强大的框架,使我们能够在不确定性条件下进行预测和决策。贝叶斯学习源于托马斯·贝叶斯的工作,提供了一种概率论的学习方法,与传统的频率统计学提供了不同的视角。本文将深入探讨贝叶斯学习的核心原......
  • 干货速学!效率提升100%,小程序开发应该掌握这些
    在当今数字化时代,移动应用程序开发领域蓬勃发展,而微信小程序作为其中一颗耀眼的明星,吸引了无数开发者的关注,很多人都想创建自己的微信小程序?但不确定哪些编程语言和技能是微信小程序开发的必备条件。对于不同的小程序开发者来说,选择适合自己的开发方式是很关键的。1、什么......