代码干货 | spring中自定义Event事件的使用和浅析
来源:互联网 发布:网络文学评论期刊 编辑:程序博客网 时间:2024/06/08 15:04
本文来源于阿里云-云栖社区,原文点击这里。
在我目前接触的项目中,用到了许多spring相关的技术,框架层面的spring、spring mvc就不说了,细节上的功能也用了不少,如schedule定时任务、Filter过滤器、interceptor拦截器等等,而这一篇我要说的是spring Event自定义事件,目前的项目中似乎没怎么用,但是这一项技术貌似还蛮重要,所以也不能不掌握。
对于事件驱动模型的解释和理解,我觉得有一篇博客里说的非常好,尤其是在解释这个关系的时候,举的交通信号灯的例子非常贴切,这里就引用做一个简单的解释:
事件驱动模型也就是我们常说的观察者,或者发布-订阅模型;理解它的几个关键点:
1. 首先是一种对象间的一对多的关系;最简单的如交通信号灯,信号灯是目标(一方),行人注视着信号灯(多方);
2. 当目标发送改变(发布),观察者(订阅者)就可以接收到改变;
3. 观察者如何处理(如行人如何走,是快走/慢走/不走,目标不会管的),目标无需干涉;所以就松散耦合了它们之间的关系。
引用的原文地址:http://click.aliyun.com/m/30419/(这篇文章中还讲解了有序监听和无序监听、异步事件等等,有兴趣的也可以去那里了解学习一下)当我们对事件驱动有一个简单的理解之后,就能大概知道它应该什么时候用,然后再来研究它该怎么用,单一的文字或许不太容易解释,还是先把代码弄上来,然后再结合起来解释。
首先自定义一个事件,需要继承ApplicationEvent类,相当于安装了一个没有通电,没有灯光的信号灯,需要具有信号灯的基本特征。
package springTest5;import org.springframework.context.ApplicationEvent;public class EventTest extends ApplicationEvent { private static final long serialVersionUID = 1L; private String message; public EventTest(Object source, String message) { super(source); this.message = message; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; }}
然后再创建一个监听类,相当于行人(不管是否使用交通工具),需要实现ApplicationListener接口,并且重写onApplicationEvent方法,可以理解成这个行人需要看信号灯,并且能理解信号灯的意思才行。否则
展开全文
- 代码干货 | spring中自定义Event事件的使用和浅析
- spring中自定义Event事件的使用和浅析
- spring中使用自定义的事件
- C#的Event关键字和自定义事件总结
- 浅析C#的事件处理和自定义事件!
- 浅析C#的事件处理和自定义事件
- 浅析C#的事件处理和自定义事件
- 浅析C#的事件处理和自定义事件_C#教程
- 浅析C#的事件处理和自定义事件_C#教程
- 浅析C#的事件处理和自定义事件
- 浅析C#的事件处理和自定义事件(转)
- 浅析C#的事件处理和自定义事件
- 浅析C#的事件处理和自定义事件
- 浅析C#的事件处理和自定义事件
- 浅析C#的事件处理和自定义事件
- 浅析C#的事件处理和自定义(转)
- 事件对象Event的使用
- Event事件的使用练习
- 极限元语音算法专家刘斌:基于深度学习的语音生成问题
- svn log显示最新几行
- Python 图片爬虫实战(使用 urllib 库)
- Android UI效果之绘图篇(一)
- php项目中的RBAC权限
- 代码干货 | spring中自定义Event事件的使用和浅析
- 移动端开发——吸顶效果的解决方案
- java-IO流: Path和Files详解
- 相似图片搜索的原理
- [BZOJ]2150: 部落战争 二分图匹配
- 在oracle中的日期类型与String类型
- Java 并发编程 内存模型 volatile关键字 -- JAVA 进阶
- 几种常见排序算法的Java实现及时间复杂度
- 私有云车牌识别API的解析与应用