概述:

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



环境:

主要包括4个文件:
  1. HelloSender.java;
  2. JMSTest.java;
  3. ProxyJMSConsumer.java;
  4. applicationContext-jms.xml(配置文件);
需要使用的jar包如下:

源文件:

HelloSender.java

  1. package com.ll.springActiveMQ1;
  2. import javax.jms.Destination;
  3. import javax.jms.JMSException;
  4. import javax.jms.Message;
  5. import javax.jms.Session;
  6. import org.springframework.context.ApplicationContext;
  7. import org.springframework.context.support.ClassPathXmlApplicationContext;
  8. import org.springframework.jms.core.JmsTemplate;
  9. import org.springframework.jms.core.MessageCreator;
  10. public class HelloSender {
  11. /**
  12. * @param args
  13. * jmsTemplate和destination都是在spring配置文件中进行配制的
  14. * Sender只使用了配置文件中的jmsFactory,jmsTemplate,还有destination这三个属性
  15. */
  16. public static void main(String[] args) {
  17. ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext-jms.xml");
  18. JmsTemplate template = (JmsTemplate) applicationContext.getBean("jmsTemplate");
  19. Destination destination = (Destination) applicationContext.getBean("destination");
  20. template.send(destination, new MessageCreator() {
  21. public Message createMessage(Session session) throws JMSException {
  22. return session.createTextMessage("发送消息:Hello ActiveMQ Text Message2!");
  23. }
  24. });
  25. System.out.println("成功发送了一条JMS消息");
  26. }
  27. }

ProxyJMSConsumer.java

  1. package com.ll.springActiveMQ1;
  2. import javax.jms.Destination;
  3. import javax.jms.TextMessage;
  4. import org.springframework.context.ApplicationContext;
  5. import org.springframework.context.support.ClassPathXmlApplicationContext;
  6. import org.springframework.jms.core.JmsTemplate;
  7. /**
  8. * JMS消费者 消息题的内容定义 消息对象 接收消息对象后: 接收到的消息体*
  9. * <p>
  10. */
  11. public class ProxyJMSConsumer {
  12. /**
  13. * 构造函数
  14. */
  15. public ProxyJMSConsumer() {
  16. }
  17. /**
  18. *
  19. */
  20. private JmsTemplate jmsTemplate;
  21. public JmsTemplate getJmsTemplate() {
  22. return jmsTemplate;
  23. }
  24. public void setJmsTemplate(JmsTemplate jmsTemplate) {
  25. this.jmsTemplate = jmsTemplate;
  26. }
  27. /**
  28. * 监听到消息目的有消息后自动调用onMessage(Message message)方法
  29. */
  30. public void recive() {
  31. ApplicationContext applicationContext = new ClassPathXmlApplicationContext(
  32. "applicationContext-jms.xml");
  33. Destination destination = (Destination) applicationContext
  34. .getBean("destination");
  35. while (true) {
  36. try {
  37. //同步接收
  38. TextMessage txtmsg = (TextMessage) jmsTemplate
  39. .receive(destination);
  40. if (null != txtmsg) {
  41. System.out.println("[DB Proxy] " + txtmsg);
  42. System.out.println("[DB Proxy] 收到消息内容为: "
  43. + txtmsg.getText());
  44. } else {
  45. break;
  46. }
  47. } catch (Exception e) {
  48. e.printStackTrace();
  49. }
  50. }
  51. }
  52. }

JMSTest.java

  1. package com.ll.springActiveMQ1;
  2. import org.apache.commons.logging.Log;
  3. import org.springframework.context.ApplicationContext;
  4. import org.springframework.context.support.ClassPathXmlApplicationContext;
  5. public class JMSTest {
  6. /**
  7. * @param args
  8. */
  9. public static void main(String[] args) {
  10. ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext-jms.xml");
  11. ProxyJMSConsumer proxyJMSConsumer = (ProxyJMSConsumer) applicationContext.getBean("messageReceiver");
  12. proxyJMSConsumer.recive();
  13. System.out.println("初始化消息消费者");
  14. }
  15. }


配置文件:

applicationContext-jms.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" xmlns:context="http://www.springframework.org/schema/context"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans
  5. http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
  6. http://www.springframework.org/schema/context
  7. http://www.springframework.org/schema/context/spring-context-2.5.xsd"
  8. default-autowire="byName">
  9. <!-- 配置connectionFactory -->
  10. <bean id="jmsFactory" class="org.apache.activemq.pool.PooledConnectionFactory"
  11. destroy-method="stop">
  12. <property name="connectionFactory">
  13. <bean class="org.apache.activemq.ActiveMQConnectionFactory">
  14. <property name="brokerURL">
  15. <value>tcp://127.0.0.1:61616</value>
  16. </property>
  17. </bean>
  18. </property>
  19. <property name="maxConnections" value="100"></property>
  20. </bean>
  21. <!-- Spring JMS Template -->
  22. <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
  23. <property name="connectionFactory">
  24. <ref local="jmsFactory" />
  25. </property>
  26. <property name="defaultDestinationName" value="subject" />
  27. <!-- 区别它采用的模式为false是p2p为true是订阅 -->
  28. <property name="pubSubDomain" value="true" />
  29. </bean>
  30. <!-- 发送消息的目的地(一个队列) -->
  31. <bean id="destination" class="org.apache.activemq.command.ActiveMQTopic">
  32. <!-- 设置消息队列的名字 -->
  33. <constructor-arg index="0" value="subject" />
  34. </bean>
  35. <bean id="messageReceiver" class="com.ll.springActiveMQ1.ProxyJMSConsumer">
  36. <property name="jmsTemplate" ref="jmsTemplate"></property>
  37. </bean>
  38. </beans>



运行顺序:


首先运行JMSTest,然后运行HelloSender。


运行结果:








附件列表

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

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

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

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

    概述: 下面将介绍如何在Spring下集成ActiveMQ. 消费者:同步接收: 目的地:Queue 环境: 共5个文件 Receiver.java ReceiverTest.java Sender. ...

  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. 如何获取选定部分的HTML

    其实这个程序很简单,首先是如何获取选定部分的HTML,还记得这段吗: HTMLDoc := WebBrowser1.Document as IHTMLDocument2;  SelectRange : ...

  2. Solrj调用Solr API

    在MyEclipse下的SSH项目,要调用Solr接口进行操作. 1.先运行solr 2.在已搭建好的SSH项目中用Solrj调用Solr的接口 3.导入如下solr的jar包到搭建好的SSH项目的W ...

  3. MyEclipse WebSphere开发教程:安装和更新WebSphere 6.1, JAX-WS, EJB 3.0(四)

    MyEclipse超值折扣 限量 100 套! 立即开抢>> [MyEclipse最新版下载] MyEclipse支持Java EE技术(如JAX-WS和EJB 3.0),它们以功能包的形 ...

  4. Adaboost算法流程及示例

    1. Boosting提升方法(源自统计学习方法) 提升方法是一种常用的统计学习方法,应用十分广泛且有效.在分类问题中,它通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的 ...

  5. dubbo支持的注册中心

    dubbo支持的注册中心 Dubbo提供的注册中心有如下几种类型可供选择: Multicast注册中心 Zookeeper注册中心 Redis注册中心 Simple注册中心 ZooKeeper是一个开 ...

  6. 升级 macOS Mojave 后部分软件 (如 VS Code) 字体变虚的解决方法

    目前有些朋友的设备可能还是“非 Retina” 显示器,那这样如果升级到 Mojave 后你会发现文字不清晰了,这是因为 Mojave 默认关闭了文字次像素渲染字体,你需要在终端里执行: defaul ...

  7. VC++实现解析快捷方式

    VC++实现解析快捷方式: http://blog.csdn.net/mydreamremindme/article/details/9826745 

  8. mysql命令小结

    MySQL 数据库常用命令 1.MySQL常用命令 create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删 ...

  9. 4天赚4000RMB 引流秘籍 卑鄙无耻之徒

    他说:有什么引流秘籍吗? 我说:贴吧.天涯.论坛都不错,只要不明着发广告,每天被动加几十个人轻轻松松的,如果执行力好,几百上千都有可能. 他说:我该怎么操作. 我说:网上找点好的帖子,简单修改一下部分 ...

  10. shell 脚本实战笔记(7)--集群网络相关知识和环境搭建

    前言: 对网络相关的知识, 做下笔记. 包括IP地址A/B/C的分类, 静态地址的配置/DNS配置, 以及网卡相关信息查看. *) A/B/C/D类网络地址的划分 IP地址=网络地址+主机地址 或 I ...