`
log_cd
  • 浏览: 1100288 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

spring jms同时使用queue和持久topic订阅

阅读更多
(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>
      
分享到:
评论
1 楼 wenin819 2012-07-26  
好文要顶!!!

相关推荐

    spring下queue与持久订阅topic实现

    本篇文章将深入探讨如何在Spring环境下利用Java消息服务(JMS)实现队列(Queue)和持久订阅(Persistent Subscription)主题(Topic)的功能。我们将从源码层面解析其工作原理,并提供一些实用工具的使用方法。 ...

    spring集成activemq演示queue和topic 持久化

    在本示例中,我们将深入探讨如何将Spring框架与ActiveMQ集成,以便实现消息队列(Queue)和主题(Topic)的功能,并确保消息的持久化。ActiveMQ是Apache软件基金会开发的一个开源消息中间件,它支持多种消息协议,如...

    SpringJMS示例代码

    SpringJMS支持两种消息模型:点对点(Queue)和发布/订阅(Topic)。点对点模型中,每个消息仅由一个消费者接收;而在发布/订阅模型中,消息可以被多个订阅者接收。 7. **消息持久化** SpringJMS和ActiveMQ结合,...

    spring-jms入门

    Spring-JMS是Spring框架的一部分,专门用于处理Java消息服务(JMS)的集成。它提供了一个简单的API,使得开发者能够方便地在应用中使用...通过理解和熟练使用Spring-JMS,你可以构建出高效、可靠、可扩展的企业级系统。

    Spring In Action 使用Spring发送和接收JMS消息

    《Spring In Action:使用Spring发送和接收JMS消息》 在Java消息服务(Java Message Service,JMS)中,Spring框架提供了一种高效且灵活的方式来处理消息传递。JMS允许应用程序在分布式环境中发送和接收消息,它...

    spring-jms

    6. **目的地策略**: Spring提供了灵活的方式来定义消息的目标,如Queue和Topic。这些可以通过DestinationResolver或JmsDestinationLookup来实现。 7. **消息驱动的POJO(MDP)**: 通过实现MessageListener接口,你...

    spring boot jsm ibmmq topic queue

    标题"spring boot jsm ibmmq topic queue"涉及到的是如何在Spring Boot项目中使用JMS与IBM MQ进行交互,包括发布/订阅模型(Topic)和点对点模型(Queue)两种方式。下面将详细解释这两个概念以及如何在Spring Boot...

    Spring集成JMS

    Spring集成JMS是Java消息服务(Java Message ...同时,如果使用MySQL作为持久化存储,Spring还提供了与JMS事务集成的能力,确保消息的原子性和一致性。 在实际应用中,`SpringJMS`可能包含以下示例代码片段: ```xml ...

    JMS IBM MQ 订阅模式

    1. **消息模型**:JMS支持两种主要的消息传递模型——点对点(Queue)和发布/订阅(Topic)。点对点模式中,消息从一个生产者发送到一个队列,然后由一个消费者接收。发布/订阅模式下,消息由发布者发送到主题,多个...

    Spring JMS 消息处理-基于JNDI

    1. **JMS核心概念**:首先,博客会介绍JMS的基本概念,包括Message、MessageProducer、MessageConsumer、Queue和Topic。理解这些概念对于有效地使用Spring JMS至关重要。 2. **Spring JMS配置**:接着,作者可能...

    Spring发送接收JMS消息

    本篇文章将深入探讨如何使用Spring进行JMS消息的发送和接收。 ### 1. JMS概述 JMS是一种中间件协议,它定义了生产、存储和消费消息的标准接口。JMS提供两种类型的消息模型:点对点(Point-to-Point, P2P)和发布/...

    JMS整合Spring实例

    在Spring的配置文件(如applicationContext.xml)中,我们需要配置JMS连接工厂、目的地(Topic或Queue)以及消息监听器容器。 ```xml &lt;bean id="destination" class="org.apache.activemq.command.ActiveMQ...

    jms简单demo,集成spring和不集成

    JMS(Java Message ...了解这些基本概念后,你可以根据提供的示例代码进一步学习如何在Spring环境中使用JMS,以及不使用Spring时如何手动操作JMS。这将有助于提升你在分布式系统中处理异步通信和解耦问题的能力。

    jms-spring.zip

    本示例"jms-spring.zip"可能是包含了Spring集成JMS与ActiveMQ的演示代码,帮助开发者理解如何在Spring应用中配置和使用JMS。以下是关于Spring与JMS集成的关键知识点: 1. **JMS基本概念**: - **消息**:数据传输...

    Apache ActiveMQ Queue Topic 详解

    在 Pub/Sub 模式下,还可以进一步区分 Nondurable subscription(非持久订阅)和 Durable subscription(持久订阅),后者可以在消费者未处于活动状态时保留消息。 综上所述,Apache ActiveMQ 不仅为开发者提供了...

    weblogic中使用JMS发送和接受消息

    本文将详细介绍如何在WebLogic中使用JMS来创建Queue(队列)和TOPIC(主题)并进行消息的发送与接收。 ### 一、JMS基本概念 1. **Queue(队列)**:队列是一种点对点的消息传递模型,其中每个消息只会被一个消费者...

    spring-jms:Spring JMS教程

    它定义了生产者(发送消息)和消费者(接收消息)之间的接口,支持点对点(Queue)和发布/订阅(Topic)两种通信模式。 ### 3. Spring JMS核心组件 - **JmsTemplate**: 这是Spring JMS的主要工具类,提供了发送和...

    Spring JMS消息处理-不基于JNDI

    2. Destination:代表消息的目的地,可以是Queue(点对点模型)或Topic(发布/订阅模型)。同样,我们可以通过创建Destination对象来指定消息发送的目标。 接下来,我们将介绍如何在Spring配置文件中进行非JNDI配置...

Global site tag (gtag.js) - Google Analytics