概述:

下面将介绍如何在Spring下集成ActiveMQ。
消费者:同步接收;
目的地:Queue



环境:

共5个文件
  1. Receiver.java
  2. ReceiverTest.java
  3. Sender.java
  4. SenderTest.java
  5. applicationContext.xml
使用的jar包如下:


源文件:

Receiver.java

    1. package com.ll.springActiveMQ2;
    1. import javax.jms.JMSException;
    1. import javax.jms.MapMessage;
    1. import org.springframework.jms.core.JmsTemplate;
    1. import org.springframework.jms.support.JmsUtils;
    1. public class Receiver {
    1. private JmsTemplate jmsTemplate;
    1. public JmsTemplate getJmsTemplate() {
    1. return jmsTemplate;
    1. }
    1. public void setJmsTemplate(JmsTemplate jmsTemplate) {
    1. this.jmsTemplate = jmsTemplate;
    1. }
    1. /**
    1. * 构造函数
    1. */
    1. public Receiver() {
    1. }
    1. public String receiveMessage() {
    1. String my = "";
    1. MapMessage message = (MapMessage) jmsTemplate.receive();
    1. try {
    1. my = message.getString("lastname");
    1. } catch (JMSException e) {
    1. throw JmsUtils.convertJmsAccessException(e);
    1. }
    1. return my;
    1. }
    1. }

ReceiverTest.java

    1. package com.ll.springActiveMQ2;
    1. import org.springframework.context.ApplicationContext;
    1. import org.springframework.context.support.ClassPathXmlApplicationContext;
    1. public class ReceiverTest {
    1. public static void main(String[] args) {
    1. ApplicationContext context = new ClassPathXmlApplicationContext(
    1. "applicationContext.xml");
    1. Receiver receiver = (Receiver) context.getBean("receiver");
    1. System.out.print("接收到消息:" + receiver.receiveMessage());
    1. }
    1. }

Sender.java

    1. package com.ll.springActiveMQ2;
    1. import javax.jms.JMSException;
    1. import javax.jms.MapMessage;
    1. import javax.jms.Message;
    1. import javax.jms.Session;
    1. import org.springframework.jms.core.JmsTemplate;
    1. import org.springframework.jms.core.MessageCreator;
    1. public class Sender {
    1. private JmsTemplate jmsTemplate;
    1. public JmsTemplate getJmsTemplate() {
    1. return jmsTemplate;
    1. }
    1. public void setJmsTemplate(JmsTemplate jmsTemplate) {
    1. this.jmsTemplate = jmsTemplate;
    1. }
    1. public void sendInfo() {
    1. jmsTemplate.send(new MessageCreator() {
    1. public Message createMessage(Session session) throws JMSException {
    1. MapMessage message = session.createMapMessage();
    1. message.setString("lastname", "科比");
    1. return message;
    1. }
    1. });
    1. }
    1. }

SenderTest.java

    1. package com.ll.springActiveMQ2;
    1. import org.springframework.context.ApplicationContext;
    1. import org.springframework.context.support.ClassPathXmlApplicationContext;
    1. public class SenderTest {
    1. public static void main(String[] args) {
    1. ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
    1. Sender sender = (Sender) context.getBean("sender");
    1. sender.sendInfo();
    1. System.out.println("消息已发送...");
    1. }
    1. }


配置文件:

applicationContext.xml

    1. <?xml version="1.0" encoding="UTF-8"?>
    1. <beans xmlns="http://www.springframework.org/schema/beans"
    1. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    1. xsi:schemaLocation="http://www.springframework.org/schema/beans
    1. http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
    1. <!--创建连接工厂 -->
    1. <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
    1. <property name="brokerURL" value="tcp://localhost:61616"></property>
    1. </bean>
    1. <!-- 声明ActiveMQ消息目标,目标可以是一个队列,也可以是一个主题ActiveMQTopic -->
    1. <bean id="destination" class="org.apache.activemq.command.ActiveMQQueue">
    1. <constructor-arg index="0" value="com.ll.springActiveMQ2"></constructor-arg>
    1. </bean>
    1. <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
    1. <property name="connectionFactory" ref="connectionFactory"></property>
    1. <property name="defaultDestination" ref="destination"></property>
    1. <property name="receiveTimeout" value="600"></property>
    1. </bean>
    1. <!-- 发送者/生产者 -->
    1. <bean id="sender" class="com.ll.springActiveMQ2.Sender">
    1. <property name="jmsTemplate" ref="jmsTemplate"></property>
    1. </bean>
    1. <!-- 接收者/消费者 -->
    1. <bean id="receiver" class="com.ll.springActiveMQ2.Receiver">
    1. <property name="jmsTemplate" ref="jmsTemplate"></property>
    1. </bean>
    1. </beans>



运行结果:









【ActiveMQ入门-9】ActiveMQ学习-与Spring集成2的更多相关文章

  1. 【spring源码学习】spring集成orm数据框架

    [一]简易的数据源配置 (1)配置文件 <!--springJdbcTemplemate数据操作配置信息 --> <bean id="driver" class= ...

  2. 【ActiveMQ入门-8】ActiveMQ学习-与Spring集成

    概述: 下面将介绍如何在Spring下集成ActiveMQ. 消费者:同步接收: 目的地:topic 环境: 主要包括4个文件: HelloSender.java: JMSTest.java: Pro ...

  3. ActiveMQ入门之四--ActiveMQ持久化方式

    消息持久性对于可靠消息传递来说应该是一种比较好的方法,有了消息持久化,即使发送者和接受者不是同时在线或者消息中心在发送者发送消息后宕机了,在消息中心重新启动后仍然可以将消息发送出去,如果把这种持久化和 ...

  4. MyBatis 学习-与 Spring 集成篇

    根据官方的说法,在 ibatis3,也就是 Mybatis3 问世之前,Spring3 的开发工作就已经完成了,所以 Spring3 中还是没有对 Mybatis3 的支持.因此由 Mybatis 社 ...

  5. ActiveMQ 入门和与 Spring 整合

    ActiveMQ 入门演示 activemq 依赖 <dependency> <groupId>org.apache.activemq</groupId> < ...

  6. Spring学习笔记--spring+mybatis集成

    前言: 技术的发展, 真的是日新月异. 作为javaer, 都不约而同地抛弃裸写jdbc代码, 而用各种持久化框架. 从hibernate, Spring的JDBCTemplate, 到ibatis, ...

  7. Spring Boot学习笔记——Spring Boot与ActiveMQ的集成

    Spring Boot对JMS(Java Message Service,Java消息服务)也提供了自动配置的支持,其主要支持的JMS实现有ActiveMQ.Artemis等.这里以ActiveMQ为 ...

  8. 从零开始学 Java - Spring 集成 ActiveMQ 配置(一)

    你家小区下面有没有快递柜 近两年来,我们收取快递的方式好像变了,变得我们其实并不需要见到快递小哥也能拿到自己的快递了.对,我说的就是类似快递柜.菜鸟驿站这类的代收点的出现,把我们原来快递小哥必须拿着快 ...

  9. 从零开始学 Java - Spring 集成 ActiveMQ 配置(二)

    从上一篇开始说起 上一篇从零开始学 Java - Spring 集成 ActiveMQ 配置(一)文章中讲了我关于消息队列的思考过程,现在这一篇会讲到 ActivMQ 与 Spring 框架的整合配置 ...

随机推荐

  1. 3.strcpy使用注意(3)

    void test3(char * str1) { if(str1==NULL) { return; } char string[10]; if(strlen(str1)<=10) { strc ...

  2. 关于while(cin>>c)语句的理解

    1.while(cin>>c)条件语句,其功能是检测输入流中的输入是否有效,若是文件结束标记或者非法输入,则条件判断为假,否则为真. 2.windows下的文件结束标记是Ctrl+z,Li ...

  3. 关于RM中的X3014错误,以及mul() 、天空盒

    关于  error X3014: incorrect number of arguments to numeric-type constructor 这个错误应该是某个类似float4 这样的变量初始 ...

  4. Word文档加密小技巧

    文件菜单设置: 1.打开需要加密的Word文档. 2.选“文件”的“另存为”,出现“另存为”对话框,在“工具”中选“常规选项”,出现“保存”选项卡. 3.分别在“打开权限密码”和“修改权限密码”中输入 ...

  5. SWIFT解析天气JSON格式

    访问以下链接可以得到京城当天的天气:http://www.weather.com.cn/adat/sk/101010100.html 返回的JSON格式如下: {"weatherinfo&q ...

  6. hadoop之HDFS运行小观察

    hadoop 是当前很火的一个  大数据运行框架和平台, 对于这个神奇的大家伙我甚是搞不清楚,前段时间闲来无视便把 HADOOP 运行起来, 看着它的操作记录存储部分(操作日志), IMAGE 记录着 ...

  7. <div class="clear"></div>

    <div class="clear"></div> 这里的clear是样式名.样式写在CSS文件中 从名称来看估计你的样式为:.clear {clear:b ...

  8. 在intent-filter中的配置

    1.scheme约束和mimetype的数据类型,这些都可以自己去定义. 2.但是由于在MainActivity却不能直接将这两个参数分开来写,例如setdata和settype,这样会互相删除. 因 ...

  9. 写个简单的chrome插件-京东商品历史价格查询

    说chrome插件编写的先关文章, 首推小茗的[干货]Chrome插件(扩展)开发全攻略. 有非常完善的理论,引用和demo代码. 但是还是建议看官方的 chrome extensions. chro ...

  10. Roslyn编译器-C#动态脚本实现方案

    [前言] Roslyn 是微软公司开源的 .NET 编译器. 编译器支持 C# 和 Visual Basic 代码编译,并提供丰富的代码分析 API. Roslyn不仅仅可以直接编译输出,难能可贵的就 ...