Spring 事件
Spring的事件处理需要遵循如下流程:
- 自定义事件,定义的事件继承ApplicationEvent抽象类
- 定义事件的监听器,实现ApplicationListener接口
- 使用ApplicationContext容器发布事件。
这里的流程涉及到三个组件:ApplicationEvent、ApplicationListener和ApplicationContext。
其中,接口 ApplicationEventPublisher 定义了函数
publishEvent(ApplicationEvent event)用于发布ApplicationEvent事件。
接口 ApplicationContext继承自ApplicationEventPublisher。AbstractApplicationContext抽象类对publishEvent类进行了实现。而在实现方法的内部将事件的发布委托给ApplicationEventMulticaster
的实现类来完成。
ApplicationEvent
接口ApplicationListener继承自EventListener。这个接口内含有一个onApplication方法用于处理applicationEvent事件。