【Spring】监听事件

本文详细介绍了如何在Spring应用中利用事件发布与监听机制提高代码灵活性和降低耦合性,包括核心接口如ApplicationEvent、ApplicationListener、ApplicationEventPublisher和ApplicationEventMulticaster的作用和工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

在Spring构建的应用程序中,适当使用spring事件发布与监听的机制可以使我们的代码灵活度高,降低耦合性。Spring 提供了完整的事件发布与监听模型。

sprjng借助于 org.springframewofk.context.event.ApplicationEvent抽象类及其子类实现事件的发布,与此同时,借助于 org.springframework.context.ApplicationListener接口及其实现者实现事件的监听,这两者构成了观察者 ( observer) 模式。

ApplicationContext 接口没有重写 ApplicationEventPublisher 的 publishEvent 方法是为了保持接口的单一职责原则和灵活性,让具体的 ApplicationContext 实现类来决定事件发布的具体逻辑。

监听器模式

监听器模式包含了一个监听者listener和与之对应的事件Event,还有一个事件发布者EventPublish,过程就是EventPublish发布了一个事件Event,被监听者Listener捕捉到,然后执行事件相应的方法。

观察者模式

观察者是一对多的模式,一个被观察者Observable和多个观察者Observer,被观察者中存储了所有的观察者对象,当被观察者接收到一个外界的消息,就会遍历广播推送消息给所有的观察者。

Spring事件核心接口和类

1.事件 :ApplicationEvent

该抽象类继承了EventObject,EventObject是JDK中的类,建议所有的事件都应该继承自EventObject.

2.事件监听器 :ApplicationListener

ApplicationListener是一个接口,该接口继承EventListener接口。EventListener接口是JDK中的,

建议所有的事件监听器都应该继承EventListener。监听器是用于接收事件,并触发事件的操作,

这样说起来可能有点费解,简单的说就是,Listener是监听ApplicationContext.publishEvent方法的调用,

一旦调用publishEvent,就会执行ApplicationListener中的onApplication方法。

3.事件发布器 :ApplicationEventPublisher

ApplicationContext继承了这个接口,在ApplicationContext的抽象实现类AbstractApplicationContext中做了实现,可以通过publishEvent方法发布事件。

4.事件源 :ApplicationContext

ApplicationContext是Spring核心的容器,在事件监听中ApplicationContext可以作为事件的发布者,也就是事件源。因为ApplicationContext继承自ApplicationEventPublisher,在ApplicationEventPublisher中定义了事件方法publishEvent(Object object)方法。

5.事件广播器 :ApplicationEventMulticaster

ApplicationEventMulticaster用于事件监听器的注册和事件的广播。监听器的注册就是通过它来实现的,它的作用是把ApplicationContext发布的Event广播给它的监听器列表。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值