事件领域模型框架kaka基础核心kaka-core更新至4.0稳定版

栏目: 软件资讯 · 发布时间: 4年前

内容简介:kaka 是一项服务于 Java 后端的事件领域模型,全局事件通知框架。 kaka-core已移至 https://gitee.com/zkpursuit/kaka-core , 并支持 maven 直接安装。 此次更新主要强化和稳定以下两个功能点: 1、单个事件对应...

kaka 是一项服务于 Java 后端的事件领域模型,全局事件通知框架。

kaka-core已移至 https://gitee.com/zkpursuit/kaka-core , 并支持 maven 直接安装。

此次更新主要强化和稳定以下两个功能点:

1、单个事件对应多个 Command,3.0版本之前仅支持一个 Command 对应多个事件。在此基础上同名事件对应的 Command 新增执行优先级,可依此模拟切面编程,以下代码为模拟切面方法拦截器,获取主体业务执行耗时。

//基于事件模拟切面编程,仅支持Command
sendMessage(new Message("40000"), true);
package kaka.test.unit;

import com.kaka.notice.Command;
import com.kaka.notice.Message;
import com.kaka.notice.annotation.Handler;

/**
 * 模拟切面
 */
@Handler(cmd = "40000", type = String.class, priority = 2)
public class SimulateAopCommand extends Command {
    @Override
    public void execute(Message msg) {
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("Aop业务执行");
    }
}
package kaka.test.unit;

import com.kaka.notice.Command;
import com.kaka.notice.IResult;
import com.kaka.notice.Message;
import com.kaka.notice.SyncResult;
import com.kaka.notice.annotation.Handler;

/**
 * 模拟切面,执行前
 */
@Handler(cmd = "40000", type = String.class, priority = 1)
public class SimulateAopBeforeCommand extends Command {
    @Override
    public void execute(Message msg) {
        IResult execStartTime = new SyncResult<>(); //中间变量亦可使用 ThreadLocal 存储
        execStartTime.set(System.currentTimeMillis());
        msg.setResult("execStartTime", execStartTime);
    }
}
package kaka.test.unit;

import com.kaka.notice.Command;
import com.kaka.notice.IResult;
import com.kaka.notice.Message;
import com.kaka.notice.annotation.Handler;

/**
 * 模拟切面,执行后
 */
@Handler(cmd = "40000", type = String.class, priority = 3)
public class SimulateAopAfterCommand extends Command {
    @Override
    public void execute(Message msg) {
        IResult execStartTime = msg.getResult("execStartTime");
        long offset = System.currentTimeMillis() - execStartTime.get();
        System.out.println("Aop业务执行耗时:" + offset);
    }
}

2、异步回调获取事件处理结果,此功能为同步获取事件处理结果的增强和优化。

sendMessage(new Message("50000", "", (IResult<Object> result) -> {
            Class clasz = ((CallbackResult<Object>) result).eventHanderClass;
            StringBuilder sb = new StringBuilder("异步回调:\\\\t" + clasz.getTypeName() + "\\\\t");
            Object resultObj = result.get();
            if (resultObj instanceof Object[]) {
                Object[] ps = (Object[]) resultObj;
                sb.append(Arrays.toString(ps));
            } else {
                sb.append(resultObj);
            }
            System.out.println(sb);
        }), true);

以上范例代码均可在源码test中查阅,其中包括常用通用性范例。


以上所述就是小编给大家介绍的《事件领域模型框架kaka基础核心kaka-core更新至4.0稳定版》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

精益思想

精益思想

(美)詹姆斯 P.沃麦克(James P.Womack)、(英)丹尼尔 T.琼斯(Daniel T.Jones) / 沈希瑾、张文杰、李京生 / 机械工业出版社 / 2011-4 / 48.00元

打算尝试精益的人,该怎么做? 已经实行精益的人,下一步怎么办? 本书包含了最新的精益理论、方法和工具,一一解答上述问题。 这是目前关于流程再造最好的书,也是最好读的。——《高业周刊》 本书中文简体字版由FreePress通过AiWA授权机械工业出版社在中国大陆独家出版发行。未经出版者书面许可,不得以任何方式抄袭、复制或节录本书中的任何部分。 《精益思想》于1996年秋......一起来看看 《精益思想》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

MD5 加密
MD5 加密

MD5 加密工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具