- 前言
- 第一部分 核心实现
- 第 1 章 Spring 整体架构和环境搭建
- 第 2 章 容器的基本实现
- 第 3 章 默认标签的解析
- 第 4 章 自定义标签的解析
- 第 5 章 bean 的加载
- 第 6 章 容器的功能扩展
- 第 7 章 AOP
- 第二部分 企业应用
- 第 8 章 数据库连接 JDBC
- 第 9 章 整合 MyBatis
- 第 10 章 事务
- 第 11 章 SpringMVC
- 第 12 章 远程服务
- 第 13 章 Spring 消息
13.1 JMS 的独立使用
尽管大多数的 Java 消息服务的使用都会跟 Spring 相结合,但是,我们还是非常有必要了解消息的独立使用方法,这对于我们了解消息的实现原理以及后续的与 Spring 整合实现分析都非常重要。当然在消息服务的使用前,需要我们先开启消息服务器,如果是 Windows 系统下可以直接双击 ActiveMQ 安装目录下的 bin 目录下的 activemq.bat 文件来启动消息服务器。
消息服务的使用除了要开启消息服务器外,还需要构建消息的发送端与接收端,发送端主要用来将包含业务逻辑的消息发送至消息服务器,而消息接收端则用于将服务器中的消息提取并进行相应的处理。
(1)发送端实现
发送端主要用于发送消息到消息服务器,以下为发送消息测试,尝试发送三条消息到消息服务器,消息的内容为“大家好这是个测试”。
public class Sender {
public static void main(String[] args) throws Exception {
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory();
Connection connection = connectionFactory.createConnection();
//connection.start();
Session session = connection.createSession(Boolean.TRUE,
Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("my-queue");
MessageProducer producer = session.createProducer(destination);
for (int i = 0; i < 3; i++) {
TextMessage message = session.createTextMessage("大家好这是个测试");
Thread.sleep(1000);
// 通过消息生产者发出消息
producer.send(message);
}
session.commit();
session.close();
connection.close();
}
}
上面的函数实现很容易让我们联想到数据库的实现,在函数开始时需要一系列冗余的但又必不可少的用于连接的代码,而其中真正用于发送消息的代码其实很简单。
(2)接收端实现。
接收端主要用于连接消息服务器并接收服务器上的消息。
public class Receiver {
public static void main(String[] args) throws Exception {
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory();
Connection connection = connectionFactory.createConnection();
connection.start();
final Session session = connection.createSession(Boolean.TRUE, Session.AUTO_
ACKNOWLEDGE);
Destination destination = session.createQueue("my-queue");
MessageConsumer consumer = session.createConsumer(destination);
int i=0;
while(i<3) {
i++;
TextMessage message = (TextMessage) consumer.receive();
session.commit();
//TODO something....
System.out.println("收到消息:" + message.getText());
}
session.close();
connection.close();
}
}
程序测试的顺序是首先开启发送端,然后向服务器发送消息,接着再开启接收端,不出意外,就会接收到发送端发出的消息。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论