第一步:添加maven配置


  <!-- mq -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
<version>5.4.3</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-pool</artifactId>
<version>5.4.3</version>
</dependency>

第二步:jms的spring配置


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:jms="http://www.springframework.org/schema/jms"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-3.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd "> <!-- 公用 -->
<bean id="jmsFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL">
<value>failover://(tcp://mq-master-dev.org:61616)?randomize=false&amp;jms.useAsyncSend=true</value>
</property>
</bean> <!-- 生产者配置 -->
<bean id="jsmConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<property name="targetConnectionFactory" ref="jmsFactory"></property>
<property name="sessionCacheSize" value="1" />
</bean>
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="jsmConnectionFactory"></property>
<property name="defaultDestinationName" value="subject"></property>
<property name="deliveryPersistent" value="true"></property>
<property name="pubSubDomain" value="false"></property>
<property name="sessionAcknowledgeMode" value="1"></property>
<property name="explicitQosEnabled" value="true"></property>
<property name="timeToLive" value="604800000"></property>
</bean>
<bean id="queueOne" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg index="0" value="queue.test.one" />
</bean>
<bean id="queueTwo" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg index="0" value="queue.test.two" />
</bean> <!-- 消费者配置 -->
<bean id="poolQueueConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
<property name="connectionFactory" ref="jmsFactory"></property>
<property name="maximumActive" value="1"></property>
</bean>
<bean id="testQueueOneListener" class="com.org.qin.mq.TestQueueOneListener" />
<jms:listener-container connection-factory="poolQueueConnectionFactory" destination-type="queue">
<jms:listener destination="queue.test.one" ref="testQueueOneListener" method="onMessage"/>
</jms:listener-container> </beans>

第三步:生产者测试代码


package com.org.qin.common.utils;

import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session; import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator; public class MQUtil { private static final Logger LOG = LoggerFactory.getLogger(MQUtil.class); /**
* 发送消息
*
* @param message
* :
* @throws InterruptedException
* :
*/
public static void send(JmsTemplate jmsTemplate, Destination desc, final String message) { jmsTemplate.send(desc, new MessageCreator() {
public Message createMessage(Session session) {
Message msg = null;
try{
msg = session.createTextMessage(message);
}
catch(JMSException e){
LOG.error(e.getMessage());
}
return msg; }
});
} }
package com.org.qin.controller.mq;

import javax.annotation.Resource;
import javax.jms.Destination;
import javax.servlet.http.HttpServletRequest; import org.springframework.jms.core.JmsTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody; import com.org.qin.common.utils.MQUtil; @Controller
@RequestMapping("mq")
public class MQController { @Resource
JmsTemplate jmsTemplate; @Resource
Destination queueOne; @Resource
Destination queueTwo; @RequestMapping(value = "/testMqProducer.htm", method = RequestMethod.GET)
@ResponseBody
public String testMqProducer(HttpServletRequest request) { MQUtil.send(jmsTemplate, queueOne, "生产一条消息,测试队列queue.test.one");
MQUtil.send(jmsTemplate, queueTwo, "生产一条消息,测试队列queue.test.two"); return "ok";
} }

第四步:测试生产者


访问:http://localhost:12342/derella-web/mq/testMqProducer.htm  请求几次后。

在页面查看推送信息http://mq-master-dev.org:8161/admin/queues.jsp  如下

点击队列名,查询消息

点击message id 查看详情

第五步:消费者测试代码


package com.org.qin.mq;

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage; public class TestQueueOneListener implements MessageListener { @Override
public void onMessage(Message msg) {
String str;
try{
str = ((TextMessage)msg).getText();
System.out.println("队列one监控信息:" + str);
}
catch(JMSException e){
e.printStackTrace();
} } }

应用启动后,如果有未处理的消息。即可处理。如下图

spring配置mq入门案例的更多相关文章

  1. Spring学习笔记(一)—— Spring介绍及入门案例

    一.Spring概述 1.1 Spring是什么 Spring是一个开源框架,是于2003年兴起的一个轻量级的Java开发框架, 由Rod Johnson 在其著作<Expert one on ...

  2. SSM-Spring-01:Spring的概念+入门案例

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- Spring 提起Spring,就会想到企业级框架这个词 企业级系统: 1.大规模:用户数量多,数据规模庞大, ...

  3. quartz(3)--spring整合quartz入门案例

    第一步:导入jar <!-- quartz --> <dependency> <groupId>org.quartz-scheduler</groupId&g ...

  4. spring的IOC入门案例

    步骤: 一,导入jar 二,创建类,在类里创建方法 三,创建Spring配置文件,配置创建类 四,写代码测试对象创建

  5. 配置中心入门案例以及出现Could not resolve placeholder 'XXX' in value "${XXX}"的解决方式

    编写配置中心的服务端 创建项目 修改 pom 文件添加 config-server 坐标 <?xml version="1.0" encoding="UTF-8&q ...

  6. Spring boot 官网学习笔记 - Spring Boot CLI 入门案例

    安装CLI https://repo.spring.io/release/org/springframework/boot/spring-boot-cli/2.1.1.RELEASE/spring-b ...

  7. Spring Boot 简单入门案例

    第一:打开idea 找到spring  Initializr 第二:点击Next 在点击下一步 找到web之后勾选第一个spring web 就完成了 在写一个类 点击运行 结果如下:

  8. Spring IOC - 控制反转(依赖注入) - 入门案例 - 获取对象的方式 - 别名标签

    1. IOC - 控制反转(依赖注入) 所谓的IOC称之为控制反转,简单来说就是将对象的创建的权利及对象的生命周期的管理过程交 由Spring框架来处理,从此在开发过程中不再需要关注对象的创建和生命周 ...

  9. Spring Mvc的入门

    SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的. Spring Web MVC是什么: Sprin ...

随机推荐

  1. 【Python之路】第十二篇--JavaScript

    JavaScript 历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEase.(客户端执行的语言) Net ...

  2. 跳出NSDate

    感觉任何语言关于时间的格式化处理,时区的处理都是多的,最近被NSDate的各种问题坑了好久 先看看关于NSDate自己的问题 1.NSDate NSDate获取当前时间 NSDate *date=[N ...

  3. docker在团队中的实践 How To Install Docker In CentOS

    " 预发布机器(centos-6.5),给每个同学都开通了ssh这个机器是大家一起共用的,稍后导些数据下来.后续 项目上线,产品测试,都是在这上面进行.  目前在一个物理机 " 3 ...

  4. Universally Unique Identifier amazonservices API order 亚马逊订单接口的分析 NextToken

    one hour in linux mysql> ) from listorders; +----------+ | count() | +----------+ | | +---------- ...

  5. dev grid 常用方法

    绑定数据源 public void Data(){DataTable td = new DataTable();DataRow row = td.NewRow();foreach (GridColum ...

  6. Spring 框架的事务管理

    1. Spring 框架的事务管理相关的类和API PlateformTransactionManager 接口: 平台事务管理器(真正管理事务的类); TransactionDefinition 接 ...

  7. lua53编译

    #下载lua包lua-5.3.5 #vs2017新建个空工程,删除lua.c,luac,c,设置配置类型 动态库.dll #编译完成

  8. Django的模型层(1)- 单表操作(下)

    一.查询表记录 在学习查询表记录之前,先了解一下QuerySet,这是一种类似列表的数据类型,是由ORM创建的.我们学习查询表记录的方法时,一定要明确哪些方法返回了QuerySet类型,哪些方法返回m ...

  9. Android图片加载框架Picasso最全使用教程3

    前面我们对Picasso的用法有了一定得了解,下面就分析一下一些特殊情况下,Picasso的用法. 调用.noFade() Picasso的默认图片加载方式有一个淡入的效果,如果调用了noFade() ...

  10. Django web 框架

    目录 与Django的第一次见面 安装.文件解释与基本命令 Settings Models Views 路由系统 模板 Form表单 Cookie与Session CSRF防护