关于spring中的事件体系

Posted 梦中彩虹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于spring中的事件体系相关的知识,希望对你有一定的参考价值。

 在客户这边上班,平时做开发的时候用到了一个客户自己写的一个开发框架,和spring类似,就是功能少一点,提供了依赖注入,事件体系,任务执行等常用的功能,还提供了一个桥接器,可以把spring中的bean映射为该框架中的bean,在看该框架的代码的事件体系的时候我也顺便看了一下spring中的事件体系的实现方式,发现,spring中的事件体系实现的比较简单,和之前自己想当然的不太一样(以前自己想当然的以为spring的事件体系肯定是使用了观察者模式之类的,看了源代码之后,发现其实不是这样的)

 

spring事件体系的核心其实是 AbstractApplicationEventMulticaster,它在内部维护了一个Listener的列表,每个Listener在spring容器启动的时候会被扫描到,然后加入到AbstractApplicationEventMulticaster的监听者列表中,如果一个事件被发布,spring会遍历监听者列表(根据监听者的泛型参数)找到事件对应的监听者,然后调用监听者的相关的方法.

这就是spring中的事件体系的实现的方法,代码可以参见https://github.com/jiaoyiping/event.git 这是我从spring的事件体系中剥离出来的event部分的代码.

之后会写一下客户实现的spring的事件体系是怎样的,会比spring中的功能强大一些.

 

以上是关于关于spring中的事件体系的主要内容,如果未能解决你的问题,请参考以下文章

Spring Security知识体系总结(2021版)

spring事件驱动模型--观察者模式在spring中的应用

170826-关于spring的知识点

Spring Web源码之映射体系

Spring Web源码之映射体系

Spring Web源码之映射体系