文档章节

为JFinal添加event消息事件

如梦技术
 如梦技术
发布于 2015/04/28 20:39
字数 388
阅读 977
收藏 38

在之前使用spring mvc的时候,在复杂的下单和支付中有一部分功能使用的Spring事件驱动模型去完成!具体优点不啰嗦了,发现涛哥有篇文章讲得比较详细:详解Spring事件驱动模型

最初准备基于Guava 的Eventbus去实现,发现其并不太适合!以下来自官方的wiki

Why must I create my own Event Bus, rather than using a singleton? EventBus doesn't specify how you use it; there's nothing stopping your application from having separate EventBus instances for each component, or using separate instances to separate events by context or topic. This also makes it trivial to set up and tear down EventBus objects in your tests.

Of course, if you'd like to have a process-wide EventBus singleton, there's nothing stopping you from doing it that way. Simply have your container (such as Guice) create the EventBus as a singleton at global scope (or stash it in a static field, if you're into that sort of thing).

In short, EventBus is not a singleton because we'd rather not make that decision for you. Use it how you like.

JFinal-event实现得比较简单,整个代码结构如图: 代码结构

其核心原理是,使用guava Multimap转载所有的监听器和监听器监听的泛型ApplicationEvent的子类!

源码地址:

http://git.oschina.net/596392912/JFinal-event

欢迎拍砖~.~

参考代码:

https://github.com/google/guava/tree/master/guava/src/com/google/common/eventbus

https://github.com/spring-projects/spring-framework/blob/master/spring-context/src/main/java/org/springframework/context/event

© 著作权归作者所有

共有 人打赏支持
如梦技术

如梦技术

粉丝 319
博文 39
码字总数 15442
作品 4
朝阳
后端工程师
私信 提问
加载中

评论(20)

如梦技术
如梦技术
13 1.4.0发布到maven了,添加EventKit.post(tag, event)方法,@Listener(order = 2, tag = "save")添加tag!
复用Event,有用到的朋友可以尝鲜。
如梦技术
如梦技术

引用来自“简单代码”的评论

已用,很简便!稳定性没问题吧?
放心用吧
简单代码
简单代码
已用,很简便!稳定性没问题吧?
如梦技术
如梦技术

引用来自“紫电清霜”的评论

来看看咯,高大上
代码比较少,而且很多都是从spring,guava里面抠出来的~
紫电清霜
紫电清霜
来看看咯,高大上
如梦技术
如梦技术

引用来自“fengyang”的评论

怎么修改 执行顺序呢,比如先发邮件,在增加积分

引用来自“孤独的3”的评论

目前,基本上算是随机了,下版本中跟进下~

引用来自“fengyang”的评论

期待下版本了,随机不大好,jdk的观察者模式也是有顺序的
已添加排序,@listener(order = 1) 越小越优先执行,Default is Integer.MAX_VALUE
fengyang
fengyang

引用来自“fengyang”的评论

怎么修改 执行顺序呢,比如先发邮件,在增加积分

引用来自“孤独的3”的评论

目前,基本上算是随机了,下版本中跟进下~
期待下版本了,随机不大好,jdk的观察者模式也是有顺序的
如梦技术
如梦技术

引用来自“fengyang”的评论

怎么修改 执行顺序呢,比如先发邮件,在增加积分
目前,基本上算是随机了,下版本中跟进下~
fengyang
fengyang
怎么修改 执行顺序呢,比如先发邮件,在增加积分
如梦技术
如梦技术

引用来自“12叔”的评论

已使用 注解扫描再加一下比较方便 maven 仓库还没上传吧
没呢,maven仓库没整过,周末好好研究下吧,注解扫描的也尽快加上吧!多多反馈~
JFinal-event v2.2.2 发布,支持JFinal 3.5 新版本inject

JFinal-event 2.x 参考Spring 4.2.x中Event的使用方式而生,为JFinal用户带来更多方便。 更新情况: 2018-10-09 v2.2.2 升级到jfinal 3.5 (不兼容老版本)支持新版本inject,升级到java 8优化...

如梦技术
10/09
0
0
JFinal Weixin 2.1 发布,微信极速 SDK

JFinal Weixin 发布四年多以来,以其简单性、稳定性,获得了大量用户的喜爱,这四年多以来 JFinal Weixin 紧跟微信官方动态,不断增加、完善功能,例如跟随本次微信官方发布的 XXE 漏洞,第一...

JFinal
07/10
0
0
OSC上关于Jfinal的提问整理(一)

看见Jfinal很火,就手痒痒了,想学一下,无奈入门较慢,没有找到比较全的文档。于是就经常看讨论区大家的提问与解答。后来就忽然萌生了整理下来的想法。其中的问题如果是@Jfinal 回答的,那我...

木川瓦兹
2013/04/23
0
21
基于JFinal、PostgreSQL开发的微信公众账号:王评老皇历(jrwplhl) 上线了。

使用的技术: 前端使用淘宝tengine(Nginx),基于JAVA语言,采用JFinal开发,数据库采用PostgreSQL,缓存及队列采用SSDB。 XML处理采用dom4j,JSON处理采用温少的fastjson。http相关处理采用H...

玛雅牛
2014/01/01
0
10
JFinal极速开发实战教程新鲜出炉~

JFinal极速开发实战教程新鲜出炉~ [持续更新中...] JFinal框架让 IT 工程师发挥更大的潜能,实现更大价值,同时也希望 JFinal 工具力量能帮助正在创业的朋友们提升效率、降低成本从而实现创业...

山东-小木
2015/01/07
0
13

没有更多内容

加载失败,请刷新页面

加载更多

揭秘 | 双11逆天记录背后的数据库技术革新

摘要: 第十个天猫“双11”狂欢节圆满落幕,如今双11已不仅仅是天猫的盛会,更是阿里技术人的新年 每一个数字背后 都需要强大的技术支撑 Higher, Faster, Smarter 是我们不变的追求 技术无边...

阿里云云栖社区
23分钟前
4
0
element ui中的input组件不能监听键盘事件解决

vue使用element-ui的el-input监听不了键盘事件,原因应该是element-ui自身封装了一层div在input标签外面,把原来的事件隐藏了,所以如下代码运行是无响应的: <el-input v-model="search" p...

呵呵闯
26分钟前
3
0
Linux常用中间件启动命令

zookeeper redis lts

王桥修道院副院长
27分钟前
2
0
Kotlin极简教程中对? extends 和 ? super (out和int)的描述

PECS 现在问题来了:我们什么时候用extends什么时候用super呢?《Effective Java》给出了答案: PECS: producer-extends, consumer-super 比如,一个简单的Stack API: public class Stack<E...

SuShine
28分钟前
1
0
微信分享link问题

前提:公司业务,分享的页面需要自定义并且是一个固定页面 因此自定义分享link,这里存在一个问题,必须与安全域名一致,自不必说,而且这个link必须是当有协议的,也就是说不能写成locatio...

litCabbage
30分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部