JmsTemplate就是Spring用来解决JMS冗长重复代码的方案,它可以创建连接,获取会话,发送和接收消息,使用它之后,使得你可以专注于构建要发送的消息及处理收到的消息。
<bean id="connectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory"> <property name="brokerURL"> <value>failover://(tcp://192.168.1.147:61616?tcpNoDelay=true,tcp://192.168.1.157:61616?tcpNoDelay=true)</value> </property> <property name="useAsyncSend" value="true"></property> </bean> <!-- 配置connectionFactory --> <bean id="jmsFactory" class="org.springframework.jms.connection.CachingConnectionFactory"> <property name="targetConnectionFactory" ref="connectionFactory"></property> <property name="sessionCacheSize" value="100" /> </bean> <!-- 发送消息的目的地(一个队列) --> <bean id="destination" class="org.apache.activemq.command.ActiveMQQueue"> <!-- Set the Queue Name --> <constructor-arg index="0" value="goodsQueue?consumer.prefetchSize=100"/> </bean> <bean id="destination_insert" class="org.apache.activemq.command.ActiveMQQueue"> <!-- Set the Queue Name --> <constructor-arg index="0" value="insertQueue?consumer.prefetchSize=10"/> </bean> <bean id="destination_img" class="org.apache.activemq.command.ActiveMQQueue"> <!-- Set the Queue Name --> <constructor-arg index="0" value="imgQueue?consumer.prefetchSize=1"/> </bean> <!-- 配置JMS模版 --> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> <property name="connectionFactory" ref="jmsFactory"/> <property name="deliveryPersistent" value="true" /> </bean> <bean id="myMessageProducer" class="com.naomi.spider.common.MyMessageProducer" > <property name="jmsTemplate" ref="jmsTemplate" /> <property name="destination" ref="destination" /> </bean> <!-- 异步接受 --> <bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer"> <property name="connectionFactory" ref="jmsFactory" /> <property name="destination" ref="destination" /> <property name="messageListener" ref="myMessageConsumer" /> <property name="sessionTransacted" value="false"/> <property name="concurrentConsumers" value="20"/> <property name="maxConcurrentConsumers" value="100"/> <property name="receiveTimeout" value="5000"/> <property name="idleTaskExecutionLimit" value="10"/> <property name="idleConsumerLimit" value="5"/> </bean>
发送消息
template.send((javax.jms.Destination) destination, new MessageCreator(){ public Message createMessage(Session session) throws JMSException { return session.createTextMessage("hello"); }
接受消息
jmsTemplate接收消息十分的简单,只需要调用template.receive()方法,receive方法是同步的,默认情况下,对receive()方法的调用会造成阻塞,知道消息到达目标----如果必要,永远等下去。为了避免对消息内容等待,可以配置jmsTemplate时,通过设置receiveTimeout属性来指定接收消息超时间。template.receive()会从默认目标接收消息,如果你希望指定一个目标,可以传一个目标。如:template.receive("myQueue").
同步接收消息并不是spring唯一的选择,消息监听器可以实现异步。activemq提供了messageListener接口,来为我们实现异步的接收消息。这样我们就不需要再手动的调用receive方法获取信息,当有消息发送到队列中时,就会自动的接受消息。我采用的是多线程异步的方式,效率要比同步的好一些。
自动将消息转化为Java对象
Spring通过MessageConverter接口提供了对消息转换的支持。此时,发送和接收消息要换成template.convertAndSend(message);template.receiveAndConvert();
可是jmsTemplate如何知道消息转换器呢?需要在配置jmsTemplate的时候,加上messageConverter属性。
<property name="messageConverter" ref="messageObj"></property>
相关推荐
将Spring与ActiveMQ整合,可以轻松地在Spring应用中实现消息队列的功能,提高系统的可扩展性和可靠性。 首先,让我们了解Spring框架如何支持消息传递。Spring提供了JmsTemplate类,这是一个模板类,用于简化发送和...
在Spring和ActiveMQ整合中,日志记录是必不可少的。 7. **activemq-all-5.15.0.jar**: 这是ActiveMQ的全功能JAR包,包含了所有需要的组件和服务,用于在Spring中直接使用ActiveMQ。 整合Spring和ActiveMQ的步骤...
ActiveMQ整合Spring的Demo是一个典型的Java企业级应用示例,它展示了如何在Spring框架中集成Apache ActiveMQ,以便实现消息队列的功能。ActiveMQ是Apache软件基金会的一个开源项目,它是一个功能丰富的Java消息服务...
标题中的“activemq整合spring”指的是在Java环境中,如何将Apache ActiveMQ,一个流行的开源消息代理和消息中间件,与Spring框架集成,以便利用Spring的便利性来管理ActiveMQ的配置和操作。ActiveMQ提供了发布/订阅...
一、Spring与ActiveMQ整合基础 1. **消息中间件概念**:消息中间件是一种软件,它在不同的应用之间传递消息,实现了应用之间的解耦。ActiveMQ作为JMS(Java Message Service)的实现,支持多种协议,如TCP/IP、HTTP...
将ActiveMQ与Spring进行整合,可以方便地在Spring应用中使用消息队列功能。 本案例主要展示了如何在Spring应用中集成ActiveMQ,实现消息的发送和接收。首先,我们需要在项目中引入ActiveMQ的相关依赖。在Maven工程...
总结,`spring整合Activemq源码`项目展示了如何在Spring和SpringMVC环境中利用ActiveMQ实现消息的发布与订阅。通过理解这些知识点,开发者能够更好地理解和实践消息队列在实际项目中的应用,提升系统的稳定性和扩展...
Spring 框架提供了与 ActiveMQ 集成的能力,使得开发者可以轻松地在 Spring 应用中使用 ActiveMQ。整合主要通过以下组件实现: 1. **Spring JMS**: Spring 提供了 JmsTemplate 类,它是发送和接收 JMS 消息的主要...
本实例代码工程"Spring+ActiveMQ整合实例代码工程"正是结合两者,展示了如何在Spring环境中配置并使用ActiveMQ进行消息传递。 首先,我们需要了解Spring与ActiveMQ整合的基本概念。Spring框架提供了对多种消息...
在 Spring Boot 中整合 ActiveMQ,可以使用 Spring 的 JmsTemplate 或者 @JmsListener 注解来发送和接收消息,实现应用间的异步通信和解耦。 整合以上技术的过程通常包括以下步骤: - 添加对应库的依赖,如 spring...
在IT行业中,Spring框架是Java...通过上述知识点,我们可以理解如何在Spring环境中利用ActiveMQ进行消息传递,实现高并发、解耦的系统架构。这个实例源码将帮助开发者深入理解这两个组件的整合,并为实际项目提供参考。
整合Spring与ActiveMQ,首先需要在Spring配置文件中定义一个JMS模板,这是一个便捷的工具类,可以用来发送和接收消息。例如: ```xml <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> ...
将ActiveMQ与Spring整合,可以充分利用Spring的便捷性来管理和使用消息队列,使得消息的发送和接收更加简单。 首先,要进行ActiveMQ与Spring的整合,你需要在项目中引入相应的依赖。通常,这可以通过在Maven或...
这个实例代码是将ActiveMQ与Spring进行整合的一个实际项目,可以在Tomcat服务器上运行。由于提供了所有必要的jar包,所以无需额外下载,直接解压后部署到Tomcat即可。这表明该实例考虑到了用户友好性和易用性,避免...
将Spring Boot与ActiveMQ整合,可以充分利用Spring的自动化配置和ActiveMQ的消息传递能力,构建高效、可扩展的微服务架构。 本文将深入探讨如何在Spring Boot项目中集成ActiveMQ,包括以下几个关键知识点: 1. **...
首先,让我们深入理解Spring与ActiveMQ整合的核心概念: 1. **Spring框架**:Spring是一个全功能的Java开发框架,它简化了应用开发,通过提供容器来管理对象的生命周期和依赖关系。Spring框架提供了AOP(面向切面...
在Spring中,可以通过配置`JmsTemplate`或监听器容器来控制消息确认策略,确保消息正确处理后才被确认。 8. **异常处理**: 当消费者处理消息时发生异常,ActiveMQ可以重试消息或者将消息放入死信队列。Spring提供...
本篇将详细讲解如何将ActiveMQ与Spring进行整合封装,实现高效、便捷的消息服务。 首先,ActiveMQ与Spring的整合主要基于Spring的JMS(Java Message Service)支持。Spring通过`ConnectionFactory`和`Destination`...
总结来说,Spring与ActiveMQ的整合涉及Spring框架的配置、ActiveMQ客户端的使用、以及通过`JmsTemplate`和`@JmsListener`进行消息的生产和消费。这种整合使得Java应用程序能够方便地利用消息队列进行异步通信,提高...
在Java世界中,ActiveMQ和Spring的整合是企业级应用中常见的消息中间件解决方案,用于实现JMS(Java Message Service)消息传递。本教程将深入探讨如何将这两个强大的工具结合在一起,以创建一个简单的发送JMS消息的...