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

Spring Event
Spring Event是Spring框架的一项功能,它允许不同组件之间通过发布-订阅机制进行解耦的通信。在Spring中,事件是表示应用程序中特定事件的对象,如用户注册、登录等。当这些事件发生时,可以通知其他组件来执行相应的操作。
Spring Event 示例
创建一个事件
如当一个用户登录时,创建一个名叫LoginEvent的事件继承ApplicationEvent
创建事件发布者用户发布事件
创建事件监听器
创建事件监听器,用于监听用户登录事件,支持创建一个或者多个,吃瓜可以1个和N个
模拟用户登录
解耦配合异步(@Async)相当丝滑
适用于内部组件之间的通信和解耦,本身不提供强制的可靠性保证机制,可靠性通常由应用开发者来保证。
事件不能像消息队列中间件那样跨服务,跨应用的分布式异步处理,但可以结合使用,在事件做过滤在发送到中间件。
在回顾一下观察者模式(Observer Pattern)
四个关键元素
主题(Subject):也称为被观察者,它维护了一个观察者列表并提供方法来添加、删除和通知观察者。主题的状态变化会通知观察者。
2. 观察者(Observer):观察者是依赖于主题的对象,它们注册自己以接收主题的通知。当主题状态发生变化时,观察者会收到通知并执行相应的操作。
4. 具体观察者(Concrete Observer):具体观察者是观察者的具体实现,它实现了更新操作以响应主题的通知。

ApplicationEvent, ApplicationEventPublisher, ApplicationEventMulticaster ,调用监听