文档章节

为JFinal添加event消息事件

如梦技术
 如梦技术
发布于 2015/04/28 20:39
字数 388
阅读 987
收藏 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

© 著作权归作者所有

共有 人打赏支持
如梦技术

如梦技术

粉丝 322
博文 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 1.5.1 发布,JFinal 事件驱动插件

JFinal-event事件驱动插件,无任何第三方依赖,小巧玲珑。 JFinal-event自1.0版本之后就没发布过更新新闻。 看到不少朋友在用,特意在此发布下近期版本更新记录! v1.4.0 ~ v1.5.1支持JFina...

如梦技术
2017/04/28
1K
19
JFinal Weixin 1.4 发布,微信极速 SDK

JFinal weixin 是第一个微信公众平台极速SDK,基于 jfinal weixin 开发不仅可以立即拥有简单易用的API,而且将立即拥有JFinal 所有的极速化支持,让开发更加轻松自如,节省更多时间去陪家人、...

JFinal
2015/07/03
5.2K
70
JFinal-event 2.1.0 发布,添加会话参数传递

JFinal-event 2.x 参(抄)考(袭)Spring 4.2.x中Event的使用方式而生,为JFinal用户带来更多方便。 更新情况: JFinal-event v2.1.0 添加会话参数传递,使用户在异步Event中更方便的获取会...

如梦技术
2018/03/08
924
7
JFinal Weixin 1.8 发布,微信极速 SDK

离上一次 JFinal weixin 1.7 发布,已经过去了 6 个月。在过去的半年时间里 JFinal Weixin 紧随微信公众平台的演化,不断增加了新的 API,同时也在不断完善原有 API,力求打造一个完备的微信...

JFinal
2016/07/13
11.4K
96
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优化...

如梦技术
2018/10/09
557
3

没有更多内容

加载失败,请刷新页面

加载更多

2019-1-16

2019-1-16 星期三 晴转霾 早饭:小面包+鸡蛋糕;午饭:馍+地三鲜;晚饭:; 6:50起床,因为媳妇说可能今天晚上去大雁塔那边吃饭,早上起来后洗了个澡(主要因为头发很油了)。 今天早上天气...

莱菔籽
7分钟前
0
0
localDate、localDateTime、localTime的使用

从前端接受的时候,localDate类型的数据要转换,加 @DateTimeFormat(pattern = "yyyy-MM-dd")

shimmerkaiye
14分钟前
1
0
1.二叉树

概念 二叉树(binary tree)是每个节点最多只有两个分支(即不存在分支度大于2的节点)的结构树。通常分支被称为“左子树”和“右子树”,左子树和右子树的位置不能随意颠倒。二叉树的第i层 ...

火拳-艾斯
17分钟前
2
0
java 线程

一、通过实现Runnable接口来创建线程 public class TestThread implements Runnable { public void run() { try { for (int i = 0; i < 10; i++) { ......

朝如青丝暮成雪
23分钟前
1
0
关于eclipse2017 import javax.servlet.jsp.tagext引入错误得问题

在eclipse中: 这个javax.servlet.jsp.tagext属于是tomcat相关jar包找到jsp-api.jar 在tomcat文件夹下边的lib文件夹中就有 如果项目中报错的话 把这个加入到项目中 在myeclipse中: 如下图,...

ZhangLG
37分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部