欢迎光临散文网 会员登陆 & 注册

SpringEvent解耦神器+观察者模式典范

2023-11-05 21:54 作者:凯小吧  | 我要投稿

Spring Event

Spring Event是Spring框架的一项功能,它允许不同组件之间通过发布-订阅机制进行解耦的通信。在Spring中,事件是表示应用程序中特定事件的对象,如用户注册、登录等。当这些事件发生时,可以通知其他组件来执行相应的操作。

Spring Event 示例

  1. 创建一个事件

如当一个用户登录时,创建一个名叫LoginEvent的事件继承ApplicationEvent

  1. 创建事件发布者用户发布事件

  1. 创建事件监听器

    创建事件监听器,用于监听用户登录事件,支持创建一个或者多个,吃瓜可以1个和N个

  1. 模拟用户登录

解耦配合异步(@Async)相当丝滑

适用于内部组件之间的通信和解耦,本身不提供强制的可靠性保证机制,可靠性通常由应用开发者来保证。

事件不能像消息队列中间件那样跨服务,跨应用的分布式异步处理,但可以结合使用,在事件做过滤在发送到中间件。

在回顾一下观察者模式(Observer Pattern)

四个关键元素

  1. 主题(Subject):也称为被观察者,它维护了一个观察者列表并提供方法来添加、删除和通知观察者。主题的状态变化会通知观察者。

2. 观察者(Observer):观察者是依赖于主题的对象,它们注册自己以接收主题的通知。当主题状态发生变化时,观察者会收到通知并执行相应的操作。

3. 具体主题(Concrete Subject):具体主题是主题的具体实现,它通常包括状态变化、观察者列表、以及通知观察者的方法。

4. 具体观察者(Concrete Observer):具体观察者是观察者的具体实现,它实现了更新操作以响应主题的通知。

ApplicationEvent, ApplicationEventPublisher, ApplicationEventMulticaster ,调用监听


SpringEvent解耦神器+观察者模式典范的评论 (共 条)

分享到微博请遵守国家法律