JFinal-event 3.1.1 发布,添加类扫描的开关
一、说明
在 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 跳转的插件,如下图:
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
kubeflow系列(三):模型即服务,关于tensorflow serving的使用
kubeflow 中采用了 tensorflow serving 作为官方的tensorflow模型接口, TensorFlow Serving是GOOGLE开源的一个服务系统,适用于部署机器学习模型,灵活、性能高、可用于生产环境。 TensorFlow Serving可以轻松部署新算法和实验,同时保持相同的服务器架构和API。 Tensorflow Serving 直接加载模型即可生成接口,不过 serving 支持的模型只有 SaveModel,因此这里主要介绍 SaveModel。 SaveModel SaveModel 是一种专门用于tf模型 拓扑结构(topology) 和 权重(weights) ,基于 SaveModel 不需要运行原始的模型构建代码,这样非常利于共享或部署模型,因此一般模型部署都用 SaveModel。 拓扑结构(Topology): 这是一个描述模型结构的文件(例如它使用的了哪些操作)。它包含对存储在外部的模型权重的引用。 权重(Weights): 这些是以有效格式存储给定模型权重的二进制文件。它们通常存储在与拓扑结构相同的文件夹中。 SaveMode...
- 下一篇
IBM研究实验室开源SysFlow以应对云威胁
IBM研究实验室近日宣布发布开源安全工具包SysFlow,用于查找云和容器环境中的漏洞。SysFlow旨在解决网络保护中的常见问题。现代安全监控工具可以高精确度地捕获系统活动,跟踪到单个事件例如文件更改操作等。 这很有用但也会产生大量“噪音”,更难以发现威胁。IBM研究人员Frederico Araujo和Teryl Taylor称在这种情况下寻找漏洞无异于“大海捞针”。 SysFlow减少了安全团队必须筛选的信息量。该工具包可以从给定的系统中收集操作数据,并将这些数据压缩到一个模型中,该模型可以显示系统的高级别行为而不是单个事件(例如HTTP请求),而且还可以呈现这种本地化事件,但是SysFlow会将其与相关行为模式进行关联,而不是为了详细分析提供必要的上下文。 Araujo和Taylor在一篇博客文章中举例了一种示漏洞场景,结果证明该工具包是非常方便的。他们假设黑客发现了企业网络中存在漏洞的Node.js服务器,将恶意脚本下载到该服务器上,然后入侵了敏感的客户数据库。 两位研究人员解释说:“先进的监视工具只能捕获断开连接的事件流,但SysFlow可以连接系统上每个攻击步骤的实体。例...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- CentOS7设置SWAP分区,小内存服务器的救世主
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,CentOS7官方镜像安装Oracle11G
- Hadoop3单机部署,实现最简伪集群
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7安装Docker,走上虚拟化容器引擎之路