概述:

下面将介绍如何在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;
  2. import javax.jms.JMSException;
  3. import javax.jms.MapMessage;
  4. import org.springframework.jms.core.JmsTemplate;
  5. import org.springframework.jms.support.JmsUtils;
  6. public class Receiver {
  7. private JmsTemplate jmsTemplate;
  8. public JmsTemplate getJmsTemplate() {
  9. return jmsTemplate;
  10. }
  11. public void setJmsTemplate(JmsTemplate jmsTemplate) {
  12. this.jmsTemplate = jmsTemplate;
  13. }
  14. /**
  15. * 构造函数
  16. */
  17. public Receiver() {
  18. }
  19. public String receiveMessage() {
  20. String my = "";
  21. MapMessage message = (MapMessage) jmsTemplate.receive();
  22. try {
  23. my = message.getString("lastname");
  24. } catch (JMSException e) {
  25. throw JmsUtils.convertJmsAccessException(e);
  26. }
  27. return my;
  28. }
  29. }

ReceiverTest.java

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

Sender.java

  1. package com.ll.springActiveMQ2;
  2. import javax.jms.JMSException;
  3. import javax.jms.MapMessage;
  4. import javax.jms.Message;
  5. import javax.jms.Session;
  6. import org.springframework.jms.core.JmsTemplate;
  7. import org.springframework.jms.core.MessageCreator;
  8. public class Sender {
  9. private JmsTemplate jmsTemplate;
  10. public JmsTemplate getJmsTemplate() {
  11. return jmsTemplate;
  12. }
  13. public void setJmsTemplate(JmsTemplate jmsTemplate) {
  14. this.jmsTemplate = jmsTemplate;
  15. }
  16. public void sendInfo() {
  17. jmsTemplate.send(new MessageCreator() {
  18. public Message createMessage(Session session) throws JMSException {
  19. MapMessage message = session.createMapMessage();
  20. message.setString("lastname", "科比");
  21. return message;
  22. }
  23. });
  24. }
  25. }

SenderTest.java

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


配置文件:

applicationContext.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans
  5. http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
  6. <!--创建连接工厂 -->
  7. <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
  8. <property name="brokerURL" value="tcp://localhost:61616"></property>
  9. </bean>
  10. <!-- 声明ActiveMQ消息目标,目标可以是一个队列,也可以是一个主题ActiveMQTopic -->
  11. <bean id="destination" class="org.apache.activemq.command.ActiveMQQueue">
  12. <constructor-arg index="0" value="com.ll.springActiveMQ2"></constructor-arg>
  13. </bean>
  14. <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
  15. <property name="connectionFactory" ref="connectionFactory"></property>
  16. <property name="defaultDestination" ref="destination"></property>
  17. <property name="receiveTimeout" value="600"></property>
  18. </bean>
  19. <!-- 发送者/生产者 -->
  20. <bean id="sender" class="com.ll.springActiveMQ2.Sender">
  21. <property name="jmsTemplate" ref="jmsTemplate"></property>
  22. </bean>
  23. <!-- 接收者/消费者 -->
  24. <bean id="receiver" class="com.ll.springActiveMQ2.Receiver">
  25. <property name="jmsTemplate" ref="jmsTemplate"></property>
  26. </bean>
  27. </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. DBGRID 拖动滚动条 和 鼠标滚轮的问题

    滚动条拖动问题 默认是,拖动时,网格内数据不变,等放开鼠标后才会变. 方法 拖动时同时变,当前记录也变,不用新控件 http://wenwen.sogou.com/z/q185291591.htm 鼠 ...

  2. Osmocom-bb系统编译

    Ubuntu 12.04.5 LTS i386环境下编译 sudu su --------------------------------------------------------------- ...

  3. Ubuntu 12.04硬盘安装教程

    从服务器下载Ubuntu 12.04光盘镜像文件到 C 盘.下载地址:\\192.167.100.225\share\Tool\Ubuntu\ubuntu-12.04.1-desktop-amd64. ...

  4. Linux:man命令显示颜色

    man命令显示颜色 在.bashrc下添加 export LESS_TERMCAP_mb=$'\E[01;31m' export LESS_TERMCAP_md=$'\E[01;31m' export ...

  5. 26个你不知道的Python技巧

    Python是目前世界上最流行的编程语言之一.因为: 1.它容易学习 2.它用途超广 3.它有非常多的开源支持(大量的模块和库) 不好意思,优达菌又啰嗦了. 本文作者 Peter Gleeson 是一 ...

  6. 多重条件判断SQL:用于用户名称,密码,权限的检测和判断

    string sqlstr = "select count(*) from tb_admin where 用户名='"+UserName+"'and 密码='" ...

  7. Linux C 文件操作函数(~上善止水~)

    翻翻笔记,整理一下 C 语言中的文件操作函数 ~~~~~~,多注意细节,maybe 细节决定成败~ 1. fopen /* fopen(打开文件) * * 相关函数 open,fclose * * 表 ...

  8. Android 获取联系人和电话号码

    获取联系人和电话号码 private void queryContactPhoneNumber() { String[] cols = {ContactsContract.PhoneLookup.DI ...

  9. rem & em初探

    Rem为单位 CSS3的出现,他同时引进了一些新的单位,包括我们今天所说的rem.在W3C官网上是这样描述rem的——“font size of the root element” .下面我们就一起来 ...

  10. matlab一些函数

    1 addpath 路径(相对应地,rmpath移除路径) addpath ../commonaddpath ../common/minFunc_2012/minFuncaddpath ../comm ...