文档章节

Zbus的JFinal插件实现第二版

玛雅牛
 玛雅牛
发布于 2015/08/02 21:21
字数 452
阅读 1257
收藏 11

第一版实现:

实现了Zbus的JFinal插件,JFinal里用Zbus更方便了。

第二版主要实现了以下目标:

1)简化设计,去掉了异步发送,仅支持同步发送。
2)信息发送/接收实现了泛型支持。
3)可直接发送/接收JFinal中特有的Model对象和Record对象。

导入dist目录下的jfinal-zbus-2.0.0.jar
同时还需要导入zbus,znet,fastjson,jfinal等jar包
配置代码如下:

//初始化zbus插件
ZbusPlugin zp = new ZbusPlugin();
//创建一个MQ
zp.createMq("MyMQ");
//创建一个Topic(zbus中topic必须属于某个队列,所以第一个参数是mq名,第二个参数是topic名)
zp.createTopic("Topic", "Check");
//注册MQ的消息到达(收到消息)回调泛型(Dict类型,Dict继承子Model)接口。
zp.registerMqMessageCallback("MyMQ", new TMessageCallback<Dict>(){
    @Override
    public void onMessage(Dict msg) {
        LOG.info("receive from MyMQ: key=" + msg.getStr("key") + ",value=" + msg.getStr("value"));
    }
});
//注册Topic的消息到达(收到消息)回调泛型(String类型)接口。
zp.registerTopicMessageCallback("Topic", "Check", new TMessageCallback<String>(){
    @Override
    public void onMessage(String msg) {
        LOG.info("receive from Topic.Check: msg=" + msg);
    }
});
//添加插件
me.add(zp);




 发送代码如下:


//初始化一个MQ泛型(Dict类型,Dict继承子Model)发送器,构造函数参数为MQ名
Sender<Dict> mqSender = new MqSender<Dict>("MyMQ");
Dict dict = new Dict();
dict.setId(1L);
dict.set("key", "key"+1);
dict.set("value", "value"+1);
//发送对象到MQ
mqSender.send(dict);
//初始化一个Topic泛型(String类型)发送器,构造函数参数为,MQ名,Topic名
Sender<String> topicSender = new TopicSender<String>("Topic", "Check");
//发送对象到topic
topicSender.send("这时一个订阅消息");



使用时,可在需要发送的类里定义一个特定类型的发送器。建议发送器的类型不要太复杂。只通过zbus来发送简单的消息。

git@osc地址如下

https://git.oschina.net/myaniu/jfinal-zbus

© 著作权归作者所有

共有 人打赏支持
玛雅牛

玛雅牛

粉丝 484
博文 113
码字总数 27496
作品 4
高级程序员
私信 提问
加载中

评论(4)

玛雅牛
玛雅牛

引用来自“SwainHo”的评论

请问一下Dict是什么类型 在哪里创建的,是自带的么,提示找不到
仅仅是举例,就像张三,李四一样。换成你自己的Model类即可。
SwainHo
SwainHo
请问一下Dict是什么类型 在哪里创建的,是自带的么,提示找不到
玛雅牛
玛雅牛
从原来的单一Sender实现重构为MqSender和TopicSender,代码表意更加清晰。
玛雅牛
玛雅牛
更新函数名(英文拼写错误)
registMqMessageCallback -》registerMqMessageCallback
registTopicMessageCallback -》registerTopicMessageCallback
【开源访谈】玛雅牛谈 JFinal 与开源技术

【嘉宾近照】 李飞,ID:@玛雅牛 ,Git 主页:http://git.oschina.net/myaniu 【正文】 1. 请简单地介绍一下你自己(技术背景、学习经历、工作经历)。 04年毕业于西安交通大学计算机系,曾就...

孔小菜
2015/09/02
9K
69
JFinal极简zbus插件 jfinal-zbus 3.1.0版发布

JFinal极简zbus插件 该插件具有以下特点: 1)简化设计,去掉了异步发送,仅支持同步发送。 2)信息发送/接收支持泛型,类型安全。 3)可直接发送/接收JFinal中特有的Model对象和Record对象...

玛雅牛
2015/08/18
3.3K
35
zbus使用场景问题

@玛雅牛 你好,想跟你请教个问题: 看到你的jfinal-zbus插件,想问一下你使用zbus的场景是什么?能否举一些使用的例子,谢谢!

Jacky_D_H
2015/09/06
1K
1
zbus 在jfinal 中不能关闭

我自己写了一个zbus在jfinal 的插件,然后在stop 方法里调用消费者 consumer 的close 方法,但是一直卡在这里,导致整个工程不能停止

超级大富
2016/05/15
302
1
JFinal 3.1 发布,没有繁琐、没有复杂,只有妙不可言

JFinal 3.1 针对 3.0 版推出的魔板引擎进行了深度打磨,例如魔板 parse 异常提示更加友好明确,消除指令嵌套时多出来的一个换行符,对于模板 isModified() 逻辑进行了重构,消除冗余代码,可...

JFinal
2017/05/04
17.1K
181

没有更多内容

加载失败,请刷新页面

加载更多

AWS自动部署工具codedeploy的部署概述

1)在AWS lambda平台上部署: 三大部分:要部署的内容 --> 部署的配置 --> 更新的lambda函数版本 部署的流程:上传修订的应用程序-->创建一个应用程序-->指定部署组-->指定部署的配置-->指定...

守护-创造
34分钟前
2
0
好程序员教程分享Javascript设计模式

好程序员教程分享Javascript设计模式 方法一 对象字面量表示法   在对象字面量表示法中,一个对象被描述为一组包含在大括号中,以逗号分隔的 name/value 对。对象内的名称可以是字符串或标...

好程序员IT
40分钟前
3
0
fail-fast和fail-safe的介绍和区别

fail-fast和fail-safe 前言 前段时间公司招的实习生在使用迭代器遍历的时候,对集合内容进行了修改,从而抛出ConcurrentModificationException. 然后给他讲解之余也整理了这一篇文章. fail-fa...

群星纪元
41分钟前
3
0
控制反转 IOC

控制反转(Inversion of Control,缩写为IoC)面向对象设计原则,降低代码耦合度 依赖注入(Dependency Injection,简称DI) 依赖查找(Dependency Lookup):容器提供回调接口和上下文条件给...

SibylY
53分钟前
2
0
网络介绍:Kubernetes设计文档

模型和动机 Kubernetes从Docker默认的网络模型中独立出来形成一套自己的网络模型。该网络模型的目标是:每一个pod都拥有一个扁平化共享网络命名空间的IP,通过该IP,pod就能够跨网络与其它物...

xiangyunyan
54分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部