Spring配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL">
<value>tcp://localhost:61616</value>
</property>
</bean>
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory">
<ref bean="connectionFactory"/>
</property>
</bean>
<bean id="destination" class="org.apache.activemq.command.ActiveMQTopic">
<constructor-arg index="0">
<value>HelloWorldTopic</value>
</constructor-arg>
</bean>
</beans>

发布者:

package ch13.JMS;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
public class HelloWorldSenderPS {
public static void main(String[] args) throws Exception{
ApplicationContext context = new ClassPathXmlApplicationContext(
new String[] {"ch13/JMS/applicationContext-PS.xml"});
JmsTemplate jmsTemplate = (JmsTemplate) context.getBean("jmsTemplate");
Destination destination = (Destination) context.getBean("destination");
for (int i = 0; i < 2; i++) {
System.out.println("Sending Message: Foo"+i);
jmsTemplate.convertAndSend(destination,"Foo "+i);
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

这里我们使用了convertAndSend的方式进行发送,这个方法将一个String转换成一个TextMessage实例,并发送他道指定的destination---这一切完全都是自动的,如果不这样,我们就必须通过以下冗长的代码:

jmsTemplate.send(destination, new MessageCreator() {
public Message createMessage(Session session) throws JMSException {
return session.createTextMessage("11");
}
});

Spring使用一个MessageConvert接口的实现类来把一个java对象转换到一个可发送的消息实例,当使用receiveAndConvert()方法接受一个消息时候,Spring使用MessageConvert来进行相反地操作,转换一个消息实例到一个java对象。

接收者:

package ch13.JMS;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.TextMessage;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jms.core.JmsTemplate;
public class HelloWorldReciverPS {
public static void main(String args[]){
ApplicationContext context=new ClassPathXmlApplicationContext(
new String[]{"ch13/JMS/applicationContext-PS.xml"});
JmsTemplate jmsTemplate=(JmsTemplate)context.getBean("jmsTemplate");
Destination destination=(Destination)context.getBean("destination");
while(true){
TextMessage msg=(TextMessage)jmsTemplate.receive(destination);
try {
System.out.println("Recieved:"+msg.getText());
} catch (JMSException e) {
System.out.println(e.getMessage());
}
} }

}

测试结果:

发送端出现:

Sending Message: Foo0

Sending Message: Foo1

接收端出现:

Recieved:Foo0
Recieved:Foo1

原文地址:https://www.cnblogs.com/wade-luffy/p/6090737.html

SpringJMS解析--使用示例的更多相关文章

  1. SpringJMS解析1-使用示例

    Spring配置文件: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="h ...

  2. MsXml创建和解析XML示例

    一.MsXml创建XML文档示例 // XmlCreationDemo.cpp #include <stdlib.h> #include <stdio.h> // 引入MSXM ...

  3. 记录心得-FastJson分层解析demo示例

    记录一下,平时用到,可速查!关键: // startArray(); 开始解析数组 // endArray(); 结束解析数组 // startObject(); 开始解析键值对 // endObje ...

  4. 使用Jackson解析Json示例

    原文http://blog.csdn.net/gebitan505/article/details/17005735 custom.json: {     "country":&q ...

  5. C语言-12-日期和时间处理标准库详细解析及示例

    概述 标准库 提供了用于日期和时间处理的结构和函数 是C++语言日期和时间处理的基础 与时间相关的类型 clock_t,本质是:unsigned long typedef unsigned long ...

  6. synchronized常见用法解析及示例

    synchronized作用:保证代码执行的原子性:保证可见性(与volatile作用相同) JAVA中synchronized关键字能够作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法 ...

  7. android json 解析 简单示例

    1 下面是一个简单的json 解析的demo,废话不多说,直接上代码 package com.sky.gallery; import java.io.ByteArrayOutputStream; im ...

  8. Android DOM解析XML示例程序

    DOM方式解析xml是先把xml文档都读到内存中,然后再用DOM API来访问树形结构,并获取数据的.DOM比较符合人的思维模式,但是其对内存的消耗比较大. activity_main.xml < ...

  9. SpringJMS解析3-监听器

    消息监听器容器是一个用于查看JMS目标等待消息到达的特殊bean,一旦消息到达它就可以获取到消息,并通过调用onMessage()方法将消息传递给一个MessageListener实现.Spring中 ...

随机推荐

  1. Java 中的 try catch 影响性能吗?

    前几天在 code review 时发现有一段代码中存在滥用try catch的现象.其实这种行为我们也许都经历过,刚参加工作想尽量避免出现崩溃问题,因此在很多地方都想着 try catch一下. 但 ...

  2. OPENSTACK重装系统失败导致虚拟机状态为error

    重装系统失败导致虚拟机状态为error DASHBOARD查看虚拟机状态: 查看日志: 磁盘不足导致下载新镜像失败. Virsh list -all 无法发现虚拟机,底层盘消失(因为重装系统时nova ...

  3. numpy 初识(三)

    基本运算 exp: e sqrt:开放 floor:向下取整 ravel:矩阵拉成一个向 T:转置(行和列变换) 改变形状: resize: 更改其形状(返回值为None)a.resize(6,2) ...

  4. jmeter-如何在JDBC Request中添加多条语句执行

    1.JDBC Connection Configuration中配置Database URL时在URL后面添加  ?allowMultiQueries=true 2.JDBC Request中添加语句 ...

  5. Catlike学习笔记(1.3)-使用Unity画更复杂的3D函数图像

    第三篇来了-今天去参加了 Unite 2018 Berlin,感觉就是....非常困...回来以后稍微睡了下清醒了觉得是时候认真学习下了,不过讲的很多东西都是还没有发布或者只有 Preview 的版本 ...

  6. Harbor 学习分享系列1 - centos7.4安装harbor1.5.2

    centos7.4安装harbor1.5.2 前言 本系列分享将Harbor有关教程:分享形式会以百度云盘的形式进行分享,主要教程将以markdown格式进行分享:建议使用markdownpad2这款 ...

  7. 在windows10上安装caffe和tensorflow

    最近在Windows10上安装了caffe和tensorflow,折腾了好久.在此记录一下. 安装caffe的过程已在另一篇博客中进行了记录,在此不再赘述.而tensorflow也是非常简单的,也不再 ...

  8. [T-ARA][Ma boo]

    歌词来源:http://music.163.com/#/song?id=22704447 作曲 : 金道勋/Rhymer [作曲 : 金道勋/Rhymer] 作词 : 金道勋 [作词 : 金道勋] 사 ...

  9. 腾讯云申请的64位ubuntu服务器配置php环境

    腾讯云申请的64位ubuntu服务器配置php环境 一.首先还是安装Lamp组合 Linux+Apache+Mysql+php 直接命令 sudo apt-get install apache2 su ...

  10. Win7(及以后版本) 高级搜索 AND OR NOT 正则

    http://www.cnblogs.com/include/archive/2011/08/23/2150594.html TIP:语法容易混淆,容易误用用C系列语法 & | !等,其实是S ...