文档章节

为JFinal添加event消息事件

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

© 著作权归作者所有

如梦技术

如梦技术

粉丝 362
博文 52
码字总数 25132
作品 6
朝阳
后端工程师
私信 提问
加载中

评论(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.5K
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
1K
7
JFinal Weixin 1.8 发布,微信极速 SDK

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

JFinal
2016/07/13
11.7K
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
678
3

没有更多内容

加载失败,请刷新页面

加载更多

centos 查看删除旧内核

1、查看系统中安装的内核 $ yum list installed | grep kernel 2、删除系统中旧内核 $ yum install yum-utils$ package-cleanup --oldkernels --count=2...

编程老陆
4分钟前
0
0
ES6

ES6:不改变原理的基础上,让API变得更简单 一、let:代替var用于声明变量 1、var的缺点: (1)声明提前 (2)没有块级作用域 2、let的优点: (1)组织了申明提前 (2)让let所在的块({}),...

wytao1995
今天
3
0
kubernetes 环境搭建 —— minikube

创建集群 minikube start 搭建好 k8s 集群后,可以查看集群的状态以及部署应用。主要用到的是 k8s 的 api,这通常需借助于 kutectl 命令行工具 基本操作 kubectl versionkubectl cluster-i...

lemos
今天
9
0
关于js混淆与反混淆还原操作

使用js的混淆加密,其目的是为了保护我们的前端代码逻辑,对应一些搞技术吃饭的公司来说,为了防止被竞争对手抓取或使用自己的代码,就会考虑如何加密,或者混淆js来达到代码保护。 1、为什么...

开源oschina
今天
11
0
用盛金公式解三次方程(ansi c版)

/* cc cubic.c -lm gcc cubic.c -lm Shengjin's Formulas Univariate cubic equation aX ^ 3 + bX ^ 2 + cX + d = 0, (a, b, c, d < R, and a!= 0). Multiple root disc......

wangxuwei
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部