二、Spring整合JMS(一)——基于ActiveMQ实现
四、Spring整合JMS(三)——MessageConverter消息转换器
1.下载ActiveMQ
去官方网站下载:http://activemq.apache.org/
2.运行ActiveMQ
将apache-activemq-5.5.1-bin.zip解压缩,双击apache-activemq-5.5.1\bin\activemq.bat运行ActiveMQ程序。
启动ActiveMQ以后,登陆:http://localhost:8161/admin/,创建一个Queue,命名为FirstQueue。
3.导入jar包:
4.实例
1、发送端
import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.DeliveryMode; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.MessageProducer; import javax.jms.Session; import javax.jms.TextMessage; import org.apache.activemq.ActiveMQConnection; import org.apache.activemq.ActiveMQConnectionFactory; public class Sender { /** 创建Session */ public static Session createSession() { // 连接工厂,JMS 用它创建连接 ConnectionFactory connectionFactory = null; // MS 客户端到JMS Provider 的连接 Connection connection = null; // 一个发送或接收消息的会话 Session session = null; try { // 构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar connectionFactory = new ActiveMQConnectionFactory( ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616"); // 通过连接工厂创建连接 connection = connectionFactory.createConnection(); // 启动连接 connection.start(); // 创建Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE); } catch (Exception e) { e.printStackTrace(); } return session; } /** 创建消息发送者 */ public static MessageProducer createProducer(Session session) { // 消息的目的地;消息发送给谁. Destination destination = null; // 消息发送者 MessageProducer producer = null; try { // 获取session注意参数值FirstQueue是一个服务器的queue,须在在ActiveMq的console配置 destination = session.createQueue("FirstQueue"); // 消息--发送者 producer = session.createProducer(destination); // 设置不持久化,实际根据项目决定 producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT); } catch (Exception e) { e.printStackTrace(); } return producer; } /** 发送消息 */ public static void sendMessage(Session session, MessageProducer producer, String content) { TextMessage textMessage = null; try { textMessage = session.createTextMessage(content); producer.send(textMessage); session.commit();// 提交 } catch (JMSException e) { e.printStackTrace(); } } /** 测试 */ public static void main(String[] args) { Session session = createSession(); MessageProducer producer = createProducer(session); for (int i = 0; i < 5; i++) { String content = "Message---" + i; System.out.println(content); sendMessage(session, producer, content); } } }
2、接收端
import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Destination; import javax.jms.MessageConsumer; import javax.jms.Session; import javax.jms.TextMessage; import org.apache.activemq.ActiveMQConnection; import org.apache.activemq.ActiveMQConnectionFactory; public class Receiver { /** 创建Session */ public static Session createSession() { // 连接工厂,JMS 用它创建连接 ConnectionFactory connectionFactory = null; // MS 客户端到JMS Provider 的连接 Connection connection = null; // 一个发送或接收消息的会话 Session session = null; try { // 构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar connectionFactory = new ActiveMQConnectionFactory( ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616"); // 通过连接工厂创建连接 connection = connectionFactory.createConnection(); // 启动连接 connection.start(); // 创建Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE); } catch (Exception e) { e.printStackTrace(); } return session; } /** 创建消息接收者 */ public static MessageConsumer createConsumer(Session session) { // 消息的目的地;消息发送给谁. Destination destination = null; // 消息接收者 MessageConsumer consumer = null; try { // 获取session注意参数值FirstQueue是一个服务器的queue,须在在ActiveMq的console配置 destination = session.createQueue("FirstQueue"); // 得到消息生成者"发送者" consumer = session.createConsumer(destination); } catch (Exception e) { e.printStackTrace(); } return consumer; } /** 发送消息 */ public static void receiverMessage(MessageConsumer consumer) { try { while (true) { // 设置接收者接收消息的时间 TextMessage message = (TextMessage) consumer.receive(6 * 1000); if (null != message) { System.out.println("ReceiverMessage--" + message.getText()); } else { System.out.println("break"); break; } } } catch (Exception e) { e.printStackTrace(); } } /** 测试 */ public static void main(String[] args) { receiverMessage(createConsumer(createSession())); } }
5、测试结果
执行Sender:
Message---0
Message---1
Message---2
Message---3
Message---4
执行Receive:
ReceiverMessage--Message---0
ReceiverMessage--Message---1
ReceiverMessage--Message---2
ReceiverMessage--Message---3
ReceiverMessage--Message---4
相关推荐
Activemq入门实例.pdf
消息队列-activemq入门实例 博客地址:https://blog.csdn.net/u010476739/article/details/100076646
简单消息服务-httpsqs 博文链接:https://sosuny.iteye.com/blog/509846
activemq入门代码,里面有详细的操作步骤,是入门的不错例子,包含基本消息应用方
JMS、ActiveMQ入门及深入使用的例子,这些例子都是我测试的
activemq
ActiveMQ入门,ActiveMQ介绍和应用案例,提供一个实例(基于spring);
activemq与spring整合发送jms消息入门实例 jar 包和实例代码都在压缩包里了
本书适合入门学习,所有例子都有源码 1.Servicemix环境安装和配置 2.Eclipse开发环境安装搭建 3.用Bundle对应用组件模块化 4.Camel的应用和例子 Bundle之间的消息传递, Errorhandling 负载均衡 。。。。。。 5....
本资源为百度云盘的链接地址,包括ActiveMQ从入门到精通的视频教程,资料文档及实例代码。适合初学者入门上手。
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
在此示例中,我们将使用两个容器,一个容器作为EnMasse实例运行,另一个容器作为运行Camel路由的代理的客户端。 此快速入门要求首先部署和运行EnMasse。 要将EnMasse安装到OpenShift或Kubernetes中,请遵循。 该...
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
1、ActiveMQ。 2、RabbitMQ。 3、Redis 4、Elasticsearch。 5、Elasticsearch-head。 6、MYSQL(执行springcloud-producer目录src/main/resources/templates/datasource.text中的建表语句) #### 使用说明 项目运行...
springboot简介,springboot入门代码实例,热部署,以及配置原理,springboot对mybatis,c3p0,springdata,junit,freeMarker,redis,solr,activeMQ,springboot部署,对于刚接触的springboot微服务框架,熟悉这个文档,基本上...