`
hzy0769
  • 浏览: 45947 次
  • 性别: Icon_minigender_1
  • 来自: 东莞
社区版块
存档分类
最新评论

ActiveMQ与Spring集成.

阅读更多

介绍

ActiveMQ Apache出品,最流行的,能力强劲的开源消息总线。由于ActiveMQ是一个独立的JMS provider,很容易被用于多种结构设计中,也不需要第三方服务器的支持,这样我们的应用可以部署在各种J2EE服务器或servlet服务器中,也可以独立运行。

 

本文介绍如何在spring中集成activemq,然后演示下如何发送和接收消息。

 

Spring中集成ActiveMQ

配置ConnectionFactory

spring中设置ActiveMQconnectionFactory,需要导入activemq-client.jar,可以到activemq官网或者通过maven repository下载。

<!-- 真正可以产生ConnectionConnectionFactory,由对应的JMS服务厂商提供--> 

<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">

        <property name="brokerURL" value="tcp://localhost:61616" />

</bean>

 

配置一个消息队列Queue(点对点)

<!--这个是队列目的地,点对点的-->

<bean id="notifyQueue" class="org.apache.activemq.command.ActiveMQQueue">

     <constructor-arg>

         <value>notifyQueue</value>

     </constructor-arg>

</bean>

 

发送消息配置

配置JmsTemplate

使用Spring提供的JmsTemplate封装JMS的细节,简化代码开发,JmsTemplate支持发送和接收。

<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">

    <property name="connectionFactory" ref="connectionFactory"/>

    <property name="receiveTimeout" value="2000" />

</bean>

 

JmsTemplate每次发送都会创建新的connect,新的session,新的MessageProducter,这样效率较低。Spring提供了一个org.springframework.jms.connection.SingleConnectionFactory,每次都返回同一个connection,它会忽略close,所以connection会一直保持着。Spring还提供了一个org.springframework.jms.connection.CachingConnectionFactory

增加了对session的缓存功能,可以通过sessionCacheSize设置,但因为它继承自SingleConnectionFactory,所以同样是一直使用同一connection,我觉得主要是用于测试环境。

 

ActiveMQ也提供了一个对connection,session, MessageProducer实现池化功能的org.apache.activemq.pool.PooledConnectionFactory。这个可以在生产环节使用。不过他和atomikos的分布式事务目前测试配合不了,使用atomikos分布式事务时由其他方法,下回再说。

编写消息生产者服务

编写消息生产者,把消息发送至队列notifyQueue

@Component

publicclass JmsProducerService {

   

    @Resource

    private JmsTemplate jmsTemplate;

   

    @Qualifier("notifyQueue")

    @Autowired

    private Destination destination;

   

    publicvoid sendMessage(final String message) { 

        System.out.println("---------------生产者-----------------");

        System.out.println("发了一个消息:" + message); 

        jmsTemplate.send(destination, new MessageCreator() {

           

            @Override

            public Message createMessage(Session session) throws JMSException {

                returnsession.createTextMessage(message); 

            } 

        });

      

    }

}

 

接收消息配置

配置监听容器

配置一个Spring监听容器,引用上面配置好的connectionFactory

<!-- 配置一个通用的JMS监听容器 -->

<bean id="jmsListenerContainerFactory"

 class="org.springframework.jms.config.DefaultJmsListenerContainerFactory">

     <property name="connectionFactory" ref="connectionFactory"/>

</bean>

 

配置@JmsListener注解支持

使用@Jmslistener直接在代码中定义监听器,减少配置文件编写,需要添加下面配置以支持@Jmslistener

<!-- 支持@JmsListener自动启动监听器 -->

<jms:annotation-driven/>

 

PS<jms:annotation-driven>默认是使用jmsListenerContainerFactory,所以配置中可以不用指定

 

编写消息监听服务

使用@JmsListener定义一个监听器,监听消息队列notifyQueue

@Component

publicclass AnConsumerListener {

 

    @JmsListener(destination="notifyQueue")

    public void receiveMessage(String message){

       System.out.println("---------------消费者监听-----------------");

       System.out.println("接收到一个纯文本消息:" + message);

      

    }

}

 

测试

 

启动ActiveMQ

执行activemq/bin/activemq.bat start

 

使用生产者发生一条消息看看

JmsProducerService jms = (JmsProducerService)SpringContextManager.getBean("jmsProducerService");

jms.sendMessage("Hello world!");

 

 

 

1
7
分享到:
评论

相关推荐

    消息队列:ActiveMQ:ActiveMQ的Spring集成.docx

    消息队列:ActiveMQ:ActiveMQ的Spring集成.docx

    activemq-spring-5.5.0.jar.zip

    《ActiveMQ与Spring整合——深度解析5.5.0版本》 在Java消息服务(Java Message Service,简称JMS)领域,Apache ActiveMQ是广泛使用的开源消息代理和集成框架。它支持多种协议,如OpenWire、AMQP、STOMP、MQTT等,...

    activemq-spring-1.2.jar.zip

    《ActiveMQ与Spring整合详解及1.2版本的使用》 在Java消息服务(Java Message...尽管它可能不包含最新的特性和改进,但对于理解JMS和Spring集成的基础原理,以及构建简单消息传递系统,这个库仍然具有很高的学习价值。

    Spring集成ActiveMQ配置

    Spring集成ActiveMQ是将Spring框架与ActiveMQ消息中间件相结合,实现异步处理和解耦应用程序的关键技术。在本文中,我们将深入探讨如何配置和使用这一组合,以及它在实际项目中的应用。 首先,让我们了解Spring框架...

    Spring集成ActiveMQ配置.docx

    Spring 集成 ActiveMQ 配置是指将 Spring 框架与 ActiveMQ 消息队列集成,以实现基于 JMS(Java Message Service)的消息传递。ActiveMQ 是 Apache 软件基金会的一个开源的消息队列系统,提供了高性能、可靠的消息...

    activemq-spring-2.0.jar.zip

    总结来说,`activemq-spring-2.0.jar.zip`是一个包含ActiveMQ与Spring集成的库,它简化了在Spring应用中使用ActiveMQ的过程。通过理解和应用其中的关键概念,开发者可以有效地利用消息队列提升系统的性能和可靠性。...

    activemq-spring-1.3.jar.zip

    而Spring框架作为Java开发中的主流框架,它提供了与各种JMS提供商集成的能力,包括ActiveMQ。在本文中,我们将深入探讨`activemq-spring-1.3.jar`这个库,以及如何在Spring应用中使用它来实现ActiveMQ的功能。 `...

    ActiveMQ与spring集成实例之使用消息监听器

    **ActiveMQ与Spring集成实例详解** ActiveMQ是Apache软件基金会下的一个开源项目,它是一个功能丰富的Java消息服务(JMS)提供商,支持多种协议,并且能够处理大量的并发消息传输。而Spring框架则是一个广泛使用的...

    ActiveMQ与spring集成实例

    通过以上步骤,你已经成功地将ActiveMQ与Spring集成,并实现了基本的消息收发功能。在实际项目中,你可能需要根据需求调整配置,例如设置消息的持久化、事务支持、消息优先级等高级特性。此外,ActiveMQ还提供了管理...

    activemq-spring-1.4.jar.zip

    `activemq-spring-1.4.jar`是专门为Spring框架设计的一个适配器,使得Spring应用能够无缝地集成ActiveMQ。这个库包含了Spring与ActiveMQ交互所需的类和配置,使得开发者可以通过Spring的IoC(Inversion of Control)...

    activemq-spring-1.5.jar.zip

    首先,`activemq-spring-1.5.jar`是专门为Spring框架设计的ActiveMQ集成库,它使得在Spring应用中配置和使用ActiveMQ变得异常简单。这个版本1.5的库是在Spring框架成熟时期发布,旨在提供与早期Spring版本的良好兼容...

    ActiveMQ与spring集成实例之使用消息转换器

    **ActiveMQ与Spring集成实例——使用消息转换器** 在企业级应用开发中,消息队列(Message Queue,MQ)作为一种解耦和异步处理的重要工具,被广泛应用。Apache ActiveMQ 是一个开源的消息中间件,它支持多种消息...

    ActiveMQ与spring集成实例之使用Maven构建

    标题中的“ActiveMQ与Spring集成实例之使用Maven构建”是指在Java开发环境中,通过Maven构建工具将Apache ActiveMQ消息中间件与Spring框架整合在一起的实际操作案例。这个主题涵盖了几大关键知识点: 1. **Apache ...

    ActiveMQ与Spring线程池整合实例

    ActiveMQ与Spring线程池整合的一个实例。 lib库没有上传。 对于实例的讲解,在竹子的论坛有我对这个实例的帖子(http://www.java2000.net/viewthread.jsp?tid=1167) lib中包含: apache-activemq-4.1.1.jar ...

    Spring boot 和内置ActiveMQ集成例子.zip

    将Spring Boot与ActiveMQ集成可以提供强大的消息处理能力,使应用能够解耦组件,提高可扩展性和容错性。 本文将详细讲解如何使用Spring Boot与内置的ActiveMQ进行集成,以及如何通过代码实现这一过程。 首先,我们...

    activemq与spring整合源代码

    Spring还提供了丰富的模块,如数据访问、Web、测试等,其中Spring JMS模块专门用于集成消息中间件,使得与ActiveMQ的整合变得简单。 三、ActiveMQ与Spring的整合 1. 添加依赖:首先,在项目中引入ActiveMQ和Spring...

    activemq与spring的整合案例

    本案例主要展示了如何在Spring应用中集成ActiveMQ,实现消息的发送和接收。首先,我们需要在项目中引入ActiveMQ的相关依赖。在Maven工程中,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.apache....

    SpringActiveMQ.rar

    Spring ActiveMQ 是一个结合了Spring框架与Apache ActiveMQ的集成解决方案,它允许开发者在Spring应用中轻松地使用消息中间件。ActiveMQ是Apache软件基金会的一个开源项目,它是一款功能强大的消息代理,支持多种...

    activemq5.5.1 Spring模板

    本文将深入探讨ActiveMQ 5.5.1版本与Spring框架的集成,以及如何利用Spring的模板模式简化ActiveMQ的使用。 一、ActiveMQ基础介绍 ActiveMQ是Apache软件基金会下的一个项目,遵循JMS(Java消息服务)规范,支持多种...

Global site tag (gtag.js) - Google Analytics