Zbus的JFinal插件实现第二版

第一版实现:

实现了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

你可能感兴趣的:(jFinal,zbus)