Spring事件驱动模型——publish如何将多个Event和多个Listener进行无误差匹配
Spring常用配置之Application Event(事件)中通自定义简单的Event和Listener阐述了Spring中publish的运行机制。实际上很多框架都利用到了Spring的这个特性,那么对于Spring而言其是如何做到Event与Listener匹配无误的呢?下面通过源码跟踪分析:
通过上图,可以知道只要监听器泛型的实际类型与事件或其父类类型一致,即可以确定事件与监听器是匹配的。在Spring常用配置之Application Event(事件)文中尾部的invokeListener(listener,event)就是处理该过程。
从事件发布到执行的整个过程如下: