1,我们先定义一个接口,可以让多个监听者实现<pre t="code" l="java">public interface IDataListen {
public void update(Object event,Object msg)
}2,实现一监听者
<pre t="code" l="java">public class DataListen implements IDataListen{
@Override
public void update(Object event, Object arg) {
// TODO Auto-generated method stub
System.out.println("数据发生了变化")
}
}3,被监听者
<pre t="code" l="java">public class DataManager{
private List<IDataListen>listenList = new ArrayList<>()
public void notifyListen(Object event,Object msg){
for(IDataListen dataListen : listenList){
dataListen.update(null, null)
}
}
public void addListen(IDataListen dataListen){
listenList.add(dataListen)
}
public void updateData(Object msg){
this.notifyListen(null, msg)
}
public static void main(String[] args) {
DataManager dataManager = new DataManager()
IDataListen dataListen1 = new DataListen()
IDataListen dataListen2 = new DataListen()
dataManager.addListen(dataListen1)
dataManager.addListen(dataListen2)
dataManager.updateData("aaa")
}
}main方法里面是监听的应用。这样就可以监听DataManager中的updateData行为了,当有数据发生变化时,就可以即时被监听者收到。
websphere mq : 用于传输信息 具有跨平台的功能。 1 安装websphere mq 并启动 2 websphere mq 建立 queue Manager (如:MQSI_SAMPLE_QM) 3 建立queue 类型选择 Local类型 的 (如lq ) 3 建立channels 类型选择Server Connection (如BridgeChan...{//前面是准备管理器和队列
MQQueueManager qMgr = new MQQueueManager(qManager)
int openOptions = MQConstants.MQOO_INPUT_AS_Q_DEF | MQConstants.MQOO_OUTPUT | MQConstants.MQOO_INQUIRE
MQQueue queue = qMgr.accessQueue(qName, openOptions)
MQMessage rcvMessage = new MQMessage()
MQGetMessageOptions gmo = new MQGetMessageOptions()
gmo.options = gmo.options + MQConstants.MQGMO_WAIT + MQConstants.MQGMO_SYNCPOINT
//读取五秒超时,这里目的是要有个读取阻塞,和Socket编程类似。
gmo.waitInterval = 5000
queue.get(rcvMessage, gmo)
//后面就是操作消息的部分【略】
}catch(Exception e){{
//前面是准备管理器和队列
MQQueueManager qMgr = new MQQueueManager(qManager)
int openOptions = MQConstants.MQOO_INPUT_AS_Q_DEF | MQConstants.MQOO_OUTPUT | MQConstants.MQOO_INQUIRE
MQQueue queue = qMgr.accessQueue(qName, openOptions)
MQMessage rcvMessage = new MQMessage()
MQGetMessageOptions gmo = new MQGetMessageOptions()
gmo.options = gmo.options + MQConstants.MQGMO_WAIT + MQConstants.MQGMO_SYNCPOINT
//读取五秒超时,这里目的是要有个读取阻塞,和Socket编程类似。
gmo.waitInterval = 5000
queue.get(rcvMessage, gmo)
//后面就是操作消息的部分【略】
}catch(Exception e){