当前位置 博文首页 > L-Java:Spring 事件发布机制@EventListener源码深度解析

    L-Java:Spring 事件发布机制@EventListener源码深度解析

    作者:[db:作者] 时间:2021-07-25 15:57

    ??基于最新Spring 5.x,详细介绍了Spring @EventListener事件发布机制的实现原理!主要是initApplicationEventMulticaster从初始化事件广播器,registerListeners、ApplicationListenerDetector注册事件监听器,EventListenerMethodProcessor解析@EventListener注解,publishEvent发布事件。

    ??前文中,我们学习了Spring提供的事件发布机制:Spring 5.x 学习(8)—@EventListener事件发布机制应用详解,可用于实现一般性的业务解耦,在学习源码之前,一定要学会使用。现在我们简单的来看看Spring的事件发布机制的原理和源码,我们仅仅讲解Spring Framework中核心事件相关类,Spring Boot和Spring Cloud扩展了很多事件的实现,后面有机会再说!

    文章目录

    • 1 initApplicationEventMulticaster初始化事件广播器
    • 2 registerListeners注册事件监听器
    • 3 ApplicationListenerDetector注册事件监听器
    • 4 EventListenerMethodProcessor解析@EventListener注解
      • 4.1 selectInvocableMethod查找可调用方法
    • 5 publishEvent发布事件
      • 5.1 multicastEvent广播事件
        • 5.1.1 getApplicationListeners获取监听器
          • 5.1.1.1 retriever.getApplicationListeners缓存获取监听器
        • 5.1.2 invokeListener调用监听器
          • 5.1.2.1 onApplicationEvent
    • 6 总结
    cs