java的消息机制,java消息机制
java的消息机制,java消息机制
首先解释一下
java消息服务JMS(Java Message Service)
简介:
Java 消息服务(Java Message Service,JMS)应用程序接口是一个Java 平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java 消息服务是一个与具体平台无关的 API。
Java 消息服务的规范包括两种消息模式,点对点和发布者/订阅者。许多提供商支持这一通用框架因此,程序员可以在他们的分布式软件中实现面向消息的操作,这些操作将具有不同面向消息中间件产品的可移植性。
总结:1、JMS是一个应用在应用程序之间、或者分布式系统之间进行异步通讯的API
2、提供两种消息模式,点对点和发布订阅者模式
JMS相关的开源项目有ActiveMQ.
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现
Spring整合ActiveMQ
0、导包
Spring整合ActiveMQ需要的包
ActiveMQ的核心包
Spring的核心包
spring-jms.jar
common-pool
common-logging’
log4j
1、配置Spring的XML文件
2、发送端代码编写
3、接收端代码编写
其次介绍以下
RMI(Java Remote Mothod Invocation)机制 ,java远程方法调用
简介:
RMI(Remote Method Invocation,远程方法调用)是用Java在JDK1.2中实现的,它大大增强了Java开发分布式应用的能力。Java作为一种风靡一时的网络开发语言,其巨大的威力就体现在它强大的开发分布式网络应用的能力上,而RMI就是开发百分之百纯Java的网络分布式应用系统的核心解决方案之一。其实它可以被看作是RPC的Java版本。但是传统RPC并不能很好地应用于分布式对象系统。而Java RMI 则支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。
总结:RMI可以作为分布式系统中远程对象的调用的java的解决方案
java的消息机制是建立在Observer设计模式基础上的。在Java中提供了基于这种模式的Observable/Observer事件框架,分别由java.util.Observable类和java.util.Observer接口组成,其中,Observer是观察者角色,Observable是被观察目标(subject)角色。
Observable是一个封装了基本功能的类,比如注册observer(attach功能),注销observer(detatch功能)等。我们一般只需从Observalbe派生我们自己的观察者。应该注意的是,Observable必须是“有变化”才触发通知observer这一任务。即如果我们不主动设置changed属性为true,将不会有任何变化,也就是说不会有“通知”。因此,设置changed属性的值是我们应用jdk observer 设计模式的关键所在。Observable提供了setChange()来设置changed属性,符合了“只有observalbe才能直接或间接通知observer”(observable设计模式的)要求。
实现Observer模式的步骤或许是这样的
//第二步,定义监听器
class MyObservable extends Observable {
//第一步,封装消息数据
private String data;
public void changeValue(String fValue) {
data = fValue;
setChanged();
}
@Override
public synchronized void addObserver(Observer o) {
// TODO Auto-generated method stub
super.addObserver(o);
}
}
//第三步,定义发送类
class MyObserver implements Observer{
//当数据改变时,通知发送类
public void update(Observable o, Object arg) {
System.out.println("data changed to"+(String)arg);
}
}
//第四步测试
MyObservable myOservable = new Test2().new MyObservable();
myOservable.addObserver(new MyObserver());
String sValue = "Hello Msg";
myOservable.changeValue(sValue);
myOservable.notifyObservers(sValue + "!");//刷新数据,通知Observable更新
相关文章
- 暂无相关文章
用户点评