Spring 事件监听机制:从原理到实战
Spring 事件监听机制是基于观察者模式的一种实现,用于组件间的解耦通信。通过事件发布者(Publisher)、事件(Event)和事件监听器(Listener)三者的配合,实现了 “发布 - 订阅” 模式,让组件无需直接依赖即可完成交互。本文将详细解析 Spring 事件监听的核心原理、内置事件及自定义事件的实现方式。
Spring 事件监听的核心组件
Spring 事件监听机制包含三个核心角色,它们协同工作完成事件的发布与处理:
| 组件 | 作用 | 核心接口 / 类 |
|---|---|---|
| 事件(Event) | 传递的消息载体,封装了需要传递的数据 | ApplicationEvent(所有事件的父类) |
| 事件发布者(Publisher) | 负责发布事件到容器中 | ApplicationEventPublisher(发布接口) |
| 事件监听器(Listener) | 监听指定类型的事件,当事件发布时执行回调逻辑 | ApplicationListener<E>(监听接口) |
三者关系如下:
- 事件发布者通过
publishEvent()方法发布事件; - Spring 容器将事件传递给所有订阅该事件的监听器;
- 监听器通过
onApplicationEvent()方法处理事件。
Spring 内置事件
Spring 框架自带了 5 种标准事件,用于监听容器生命周期和 Web 请求等场景,这些事件均继承自 ApplicationEvent:

