概述
观察者模式Observer(发布订阅模式Publish/Subscribe)
- 被观察者一个,观察者多个;主题一个,订阅者多个。
- 原理:订阅者将自身注册到主题中(如List中),主题向外提供发布接口,接口被调用时,主题通过notifyObservers方法通知注册列表中的订阅者。
- 实现:将主题和订阅抽象为抽象列和接口,主题包含订阅者集合,通过notifyObservers调用订阅者回调方法
- Java自带观察者实现:java.util.Observable(被观察者),java.util.Observer(观察者)
- 推型:将数据部分或全部给观察者(固定了参数)
- 拉型:将自己传递给观察者,观察者通过主题对象获取数据(耦合度更低)
Java监听机制
- 事件监听三要素: 事件源,事件对象,事件监听器
- 三要素之间的关系:事件源注册事件监听器后,当事件源上发生某个动作时,事件源就会调用事件监听的一个方法,并将事件对象传递进去,开发者可以利用事件对象操作事件源
- 事件源:Source,任何Object,注册事件监听器,触发监听器
- 事件对象:java.util.EventObject,通过getSource拿到数据源
- 事件监听器:java.util.EventListener,直接操作事件对象
- 本质也是观察者模式,事件源=主题,事件监听器=观察者
SpringBoot监听机制
事件:ApplicationEvent继承了EventObject
监听器:ApplicationListener继承了EventListener
广播器:ApplicationEventMulticaster
通过springboot上下文注册监听器到广播器,通过上下文发布事件,广播器通过遍历监听器注册列表执行监听器方法
自带监听器:
ApplicationContextInitializer:run方法运行前
SpringApplicationRunlistener:启动到结束
CommandLineRunner:容器准备完成时
ApplicationRunner:容器准备完成时
最后
以上就是鲤鱼飞机为你收集整理的SpringBoot事件监听SpringBoot监听机制的全部内容,希望文章能够帮你解决SpringBoot事件监听SpringBoot监听机制所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复