JFinal-event 3.1.1 发布,添加类扫描的开关

如梦技术
 如梦技术
发布于 2020年01月14日
收藏 10

一、说明

在 JFinal-event 3.0 比较激进的采用了注解处理器,在不使用 maven、gradle 等包管理或者开发工具不支持,

会导致不生成 dream.events 配置文件。对于这种情况你可以采用开启类扫描的形式。

EventPlugin plugin = new EventPlugin();
// 设置为异步,默认同步,或者使用`threadPool(ExecutorService executorService)`自定义线程池。
plugin.async(); 
// 开启类扫描,默认为 false,用于不支持注解处理器的情况,用于不使用 maven 或者不支持注解处理器的情况。
plugin.enableClassScan();
// 扫描 jar 里的 监听器,默认不扫描,在开启 enableClassScan 有效果
plugin.scanJar();
// 扫描的包,默认全扫描,可提升启动速度,在开启 enableClassScan 有效果
plugin.scanPackage("com.xxx.包名"); 
// 手动启动插件,用于main方法启动,jfinal中不需要,添加插件即可。
plugin.start(); 
// 停止插件,用于main方法测试
plugin.stop();

如果你是使用的 maven ,我还是推荐你不用类扫描的方式,注解处理器可以提速项目启动的时间。

或者你可以根据 JFinal.me().getConstants().getDevMode(),判断是否开启类扫描,因为注解处理器 maven 是支持的。

本地 ide 支持情况各不同,idea 中需要配置开启注解处理器。

详细使用说明请见:https://gitee.com/596392912/JFinal-event

二、使用场景

JFinal event 适用于单服务内部的事件总线,当然也可以结合 mq 来使用,jfinal-event 曾经也开发过基于 rmi 的远程事件版本。后期放弃了,毕竟使用 mq 会更有优势。

场景列举:

1. 自定义 jfinal base model,cud 时发送 cud 事件,解耦代码,任何地方都可以监听 event。

2. 业务解耦,例如:下单完成时的功能:

a. 用户积分

b. 短信消息

c. 邮件消息

d. 公众号消息等

e. 异步日志

3. websocket中使用,将消息和业务解耦。

这时候我们可以在 支付完成后的业务代码添加一个事件发送。

然后就可以将上面的几个功能写到不同的监听器里,(一个事件是可以有多个监听的)

事件无处不在,html 元素里都是事件监听,如果真想清楚了一通百通。

三、开启注解处理器

eclipse:

idea:

四、更新说明

2020-01-10 v3.1.1

  • 升级到jfinal 4.8。
  • 支持老的 plugin.scanJar();
  • 支持老的 plugin.scanPackage("com.xxx.包名");
  • google-auto 调整为自家的 mica-auto。
  • 添加类扫描的开关,用于不是用 maven 等包管理的项目。
  • 删除 ObjenesisBeanFactory,已经没有存在的意义。

五、JFinal-event idea 插件众筹

使用 JFinal-event 可以解耦复杂的业务逻辑,也给新手带来不少疑惑,找不到具体的监听逻辑。

Idea 为 Spring 开发了一个可以在 event 和 Listener 跳转的插件,如下图:

众筹详情请见:http://www.jfinal.com/share/1973

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:JFinal-event 3.1.1 发布,添加类扫描的开关
加载中

最新评论(1

风吹过的绿洲
风吹过的绿洲
🐮666
返回顶部
顶部