Spring事件发布
Spring 事件发布 Author: xiaolu 概要: Spring 的 ApplicationContext 在 BeanFactory 的基础上,支持事件的发布(包括同步 - 默认,和异步事件)。 事件发布和事件监听处理本质上是观察者模式的一种使用方式。对于 Spring 事件的发布,包含三个部分: 事件实体、事件监听器、事件发布者。 事件实体: 事件实体定义了什么事件,同时包含了要传递的参数信息。 Spring 的事件发布中,自定义事件实体需要继承 ApplicationEvent 类。即所有的事件都是 ApplicationEvent 类的子类。 事件监听者: 事件监听者,即对某个事件感兴趣的部分,在特定事件发生后,需要去进行某种逻辑的处理。 Spring 中事件监听者需要实现 ApplicationListener 接口。在其 onApplicationEvent 函数中进行事件的处理。 事件发布者: 事件发布者即发布事件的部分,它推动了事件流程的开始。 Spring 中,事件的发布可以使用 ApplicationContext 类的 publishEvent 方法来进行发布。 代码示例: 1) Java 配置部分(替代 xml 文件配置方式) 2) 事件定义 此处定义一个 StartEvent 事件,继承于 ApplicationEvent 3) 事件监听者