观察者模式观察者模式的定义:在对象之间定义一个一对多的依赖,当一个对象状态改变的时候,所有依赖的对象都会自动收到通知!
发布订阅模式是什么?
观察者模式和发布订阅模式是有一点点区别的,区别有以下几点:
- 前者:观察者订阅主题,主题也维护观察者的记录,而后者:发布者和订阅者不需要彼此了解,而是在消息队列或代理的帮助下通信,实现松耦合。
- 前者主要以同步方式实现,即某个事件发生时,由Subject调用所有Observers的对应方法,后者则主要使用消息队列异步实现。
Spring事件监听机制概述
SpringBoot中事件监听机制则通过发布-订阅实现,主要包括以下三部分:
- 事件 ApplicationEvent,继承JDK的EventObject,可自定义事件。
- 事件发布者 ApplicationEventPublisher,负责事件发布。
- 事件监听者 ApplicationListener,继承JDK的EventListener,负责监听指定的事件。
一个完整的事件,由事件源、事件发布、事件监听三部分组成
声明事件 public class SendEmailEvent extends ApplicationEvent {
解耦 异步的左右 直接调用接口也可实现 但是不能解耦
事件发布 new publish(new VeAccountNotifyEventnotifyEvent(this,version)) 发送邮件(指令)
事件监听 @EventListener(VeAccountNotifyEventnotifyEvent event) 消费者(发送邮件)
点击确认后 (调用服务接口) new 事件发布 new publish(new VeAccountNotifyCallBackEvent(this,version)) 发送邮件(指令)
事件监听 @EventListener(VeAccountNotifyCallBackEvent event) 消费者(发送邮件)
标签:订阅,观察者,模式,事件,应用,new,监听 From: https://www.cnblogs.com/developS/p/17595029.html