Spring 事件

Spring的事件处理需要遵循如下流程:

  • 自定义事件,定义的事件继承ApplicationEvent抽象类
  • 定义事件的监听器,实现ApplicationListener接口
  • 使用ApplicationContext容器发布事件。

这里的流程涉及到三个组件:ApplicationEvent、ApplicationListener和ApplicationContext。

其中,接口 ApplicationEventPublisher 定义了函数
publishEvent(ApplicationEvent event)用于发布ApplicationEvent事件。
Spring 事件
接口 ApplicationContext继承自ApplicationEventPublisher。AbstractApplicationContext抽象类对publishEvent类进行了实现。而在实现方法的内部将事件的发布委托给ApplicationEventMulticaster的实现类来完成。

ApplicationEvent

Spring 事件
接口ApplicationListener继承自EventListener。这个接口内含有一个onApplication方法用于处理applicationEvent事件。