(1)spring配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:amq="http://activemq.org/config/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://activemq.org/config/1.0
http://people.apache.org/repository/org.apache.activemq/xsds/activemq-core-4.2-incubator-SNAPSHOT.xsd">
<bean id="connectionFactory"
class="org.apache.activemq.spring.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://195.2.199.169:61616"/>
<property name="useAsyncSend" value="true"/>
</bean>
<bean id="topicListenConnectionFactory"
class="org.apache.activemq.spring.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://195.2.199.169:61617"/>
<property name="clientID" value="clientId_007"/>
</bean>
<!-- 消息队列监听者(MDP) -->
<bean id="queueMsgListener" class="com.cdmcs.oa.jms.MagMessageListener"/>
<!-- 消息主题监听者(MDP) -->
<bean id="topicMsgListener" class="com.cdmcs.oa.jms.MagTopicMsgListener"/>
<!--定义消息队列-->
<bean id="myQueue" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg value="Queue.007"/>
</bean>
<!--定义订阅主题-->
<bean id="myTopic" class="org.apache.activemq.command.ActiveMQTopic">
<constructor-arg value="basicInfo.topic"/>
</bean>
<!-- 监听自己的消息 -->
<bean id="myMsgQueuelistenerContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory" />
<property name="concurrentConsumers" value="1"/>
<property name="maxConcurrentConsumers" value="1"/>
<property name="destination" ref="myQueue"/>
<property name="messageListener" ref="queueMsgListener"/>
<property name="receiveTimeout" value="10000"/>
<property name="taskExecutor" ref="taskExecutor" />
<!--0:CACHE_NONE,1:CACHE_CONNECTION,2:CACHE_SESSION,3:CACHE_CONSUMER,4:CACHE_AUTO-->
<property name="cacheLevel" value="0"/>
</bean>
<!--监听公共消息(持久订阅者)-->
<bean id="myMsgTopicListenerContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="topicListenConnectionFactory"/>
<property name="pubSubDomain" value="true"/>
<property name="concurrentConsumers" value="1"/>
<property name="maxConcurrentConsumers" value="1"/>
<property name="receiveTimeout" value="10000"/>
<property name="destination" ref="myTopic" />
<property name="subscriptionDurable" value="true"/>
<property name="clientId" value="clientId_007"/>
<property name="durableSubscriptionName" value="clientId_007"/>
<property name="messageListener" ref="topicMsgListener"/>
<property name="taskExecutor" ref="taskExecutor" />
<property name="cacheLevel" value="0"/>
</bean>
<!--DefaultMessageListenerContainer默认的线程池支持-->
<bean id="taskExecutor"
class="org.springframework.core.task.SimpleAsyncTaskExecutor"/>
<bean id="jmsQueueTemplate"
class="org.springframework.jms.core.JmsTemplate102">
<property name="connectionFactory" ref="connectionFactory"/>
<property name="messageConverter" ref="simpleConverter"/>
<property name="sessionTransacted" value="true"/>
<property name="receiveTimeout" value="10000"/>
</bean>
<bean id="jmsTopicTemplate"
class="org.springframework.jms.core.JmsTemplate102">
<property name="connectionFactory" ref="connectionFactory"/>
<property name="messageConverter" ref="simpleConverter"/>
<property name="pubSubDomain" value="true"/>
<property name="sessionTransacted" value="true"/>
<property name="receiveTimeout" value="10000"/>
</bean>
<bean id="simpleConverter"
class="org.springframework.jms.support.converter.SimpleMessageConverter"/>
</beans>
(2)activemq配置
<!-- The transport connectors ActiveMQ will listen to -->
<transportConnectors>
<transportConnector name="myQueue" uri="tcp://localhost:61616"/>
<transportConnector name="myTopic" uri="tcp://localhost:61617"/>
</transportConnectors>
分享到:
相关推荐
本篇文章将深入探讨如何在Spring环境下利用Java消息服务(JMS)实现队列(Queue)和持久订阅(Persistent Subscription)主题(Topic)的功能。我们将从源码层面解析其工作原理,并提供一些实用工具的使用方法。 ...
在本示例中,我们将深入探讨如何将Spring框架与ActiveMQ集成,以便实现消息队列(Queue)和主题(Topic)的功能,并确保消息的持久化。ActiveMQ是Apache软件基金会开发的一个开源消息中间件,它支持多种消息协议,如...
SpringJMS支持两种消息模型:点对点(Queue)和发布/订阅(Topic)。点对点模型中,每个消息仅由一个消费者接收;而在发布/订阅模型中,消息可以被多个订阅者接收。 7. **消息持久化** SpringJMS和ActiveMQ结合,...
Spring-JMS是Spring框架的一部分,专门用于处理Java消息服务(JMS)的集成。它提供了一个简单的API,使得开发者能够方便地在应用中使用...通过理解和熟练使用Spring-JMS,你可以构建出高效、可靠、可扩展的企业级系统。
《Spring In Action:使用Spring发送和接收JMS消息》 在Java消息服务(Java Message Service,JMS)中,Spring框架提供了一种高效且灵活的方式来处理消息传递。JMS允许应用程序在分布式环境中发送和接收消息,它...
6. **目的地策略**: Spring提供了灵活的方式来定义消息的目标,如Queue和Topic。这些可以通过DestinationResolver或JmsDestinationLookup来实现。 7. **消息驱动的POJO(MDP)**: 通过实现MessageListener接口,你...
标题"spring boot jsm ibmmq topic queue"涉及到的是如何在Spring Boot项目中使用JMS与IBM MQ进行交互,包括发布/订阅模型(Topic)和点对点模型(Queue)两种方式。下面将详细解释这两个概念以及如何在Spring Boot...
Spring集成JMS是Java消息服务(Java Message ...同时,如果使用MySQL作为持久化存储,Spring还提供了与JMS事务集成的能力,确保消息的原子性和一致性。 在实际应用中,`SpringJMS`可能包含以下示例代码片段: ```xml ...
1. **消息模型**:JMS支持两种主要的消息传递模型——点对点(Queue)和发布/订阅(Topic)。点对点模式中,消息从一个生产者发送到一个队列,然后由一个消费者接收。发布/订阅模式下,消息由发布者发送到主题,多个...
1. **JMS核心概念**:首先,博客会介绍JMS的基本概念,包括Message、MessageProducer、MessageConsumer、Queue和Topic。理解这些概念对于有效地使用Spring JMS至关重要。 2. **Spring JMS配置**:接着,作者可能...
本篇文章将深入探讨如何使用Spring进行JMS消息的发送和接收。 ### 1. JMS概述 JMS是一种中间件协议,它定义了生产、存储和消费消息的标准接口。JMS提供两种类型的消息模型:点对点(Point-to-Point, P2P)和发布/...
在Spring的配置文件(如applicationContext.xml)中,我们需要配置JMS连接工厂、目的地(Topic或Queue)以及消息监听器容器。 ```xml <bean id="destination" class="org.apache.activemq.command.ActiveMQ...
JMS(Java Message ...了解这些基本概念后,你可以根据提供的示例代码进一步学习如何在Spring环境中使用JMS,以及不使用Spring时如何手动操作JMS。这将有助于提升你在分布式系统中处理异步通信和解耦问题的能力。
本示例"jms-spring.zip"可能是包含了Spring集成JMS与ActiveMQ的演示代码,帮助开发者理解如何在Spring应用中配置和使用JMS。以下是关于Spring与JMS集成的关键知识点: 1. **JMS基本概念**: - **消息**:数据传输...
在 Pub/Sub 模式下,还可以进一步区分 Nondurable subscription(非持久订阅)和 Durable subscription(持久订阅),后者可以在消费者未处于活动状态时保留消息。 综上所述,Apache ActiveMQ 不仅为开发者提供了...
本文将详细介绍如何在WebLogic中使用JMS来创建Queue(队列)和TOPIC(主题)并进行消息的发送与接收。 ### 一、JMS基本概念 1. **Queue(队列)**:队列是一种点对点的消息传递模型,其中每个消息只会被一个消费者...
它定义了生产者(发送消息)和消费者(接收消息)之间的接口,支持点对点(Queue)和发布/订阅(Topic)两种通信模式。 ### 3. Spring JMS核心组件 - **JmsTemplate**: 这是Spring JMS的主要工具类,提供了发送和...
2. Destination:代表消息的目的地,可以是Queue(点对点模型)或Topic(发布/订阅模型)。同样,我们可以通过创建Destination对象来指定消息发送的目标。 接下来,我们将介绍如何在Spring配置文件中进行非JNDI配置...