目前采用一个配置文件里,配置多个消息队列,如果有更好的方式,请指教
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
<!-- 使用Spring组件扫描的方式来实现自动注入bean -->
<context:component-scan base-package="com.vve"/>
<context:component-scan base-package="com.vveplat"/>
<!-- Spring提供的JMS工具类,它可以进行消息发送、接收等 -->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<!-- 这个connectionFactory对应的是我们定义的Spring提供的那个ConnectionFactory对象 -->
<property name="connectionFactory" ref="connectionFactory"/>
</bean>
<!-- 真正可以产生Connection的ConnectionFactory,由对应的 JMS服务厂商提供-->
<bean id="targetConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<!-- <property name="brokerURL" value="failover:tcp://172.30.34.106:8777?wireFormat.maxInactivityDuration=0"/> -->
<property name="brokerURL" value="failover:tcp://localhost:61616?wireFormat.maxInactivityDuration=0"/>
</bean>
<!-- Spring用于管理真正的ConnectionFactory的ConnectionFactory -->
<bean id="connectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory">
<!-- 目标ConnectionFactory对应真实的可以产生JMS Connection的ConnectionFactory -->
<property name="targetConnectionFactory" ref="targetConnectionFactory"/>
</bean>
<!--这个是第一个队列目-->
<bean id="orderQueueDestination" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg>
<value>order</value>
</constructor-arg>
</bean>
<!--这个是第二个队列-->
<bean id="registerValueIndexQueueDestination" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg>
<value>registerValueIndex</value>
</constructor-arg>
</bean>
<!-- 第一个消息监听器 -->
<bean id="orderMessageListener" class="com.vveplat.message.queue.listener.OrderMessageListener">
<!-- property name="messageConverter" ref="emailMessageConverter"/-->
</bean>
<!-- 第二个消息监听器 -->
<bean id="registerValueIndexMessageListener" class="com.vveplat.message.queue.listener.RegisterValueIndexMessageListener">
<!-- property name="messageConverter" ref="emailMessageConverter"/-->
</bean>
<!-- 第一个消息监听容器 -->
<bean id="jmsContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory" />
<property name="destination" ref="orderQueueDestination" />
<property name="messageListener" ref="orderMessageListener" />
<property name="sessionTransacted" value="false"></property>
<!-- 设置固定的线程数 -->
<property name="concurrentConsumers" value="6"></property>
<!-- 设置动态的线程数 -->
<property name="concurrency" value="2-9"></property>
<!-- 设置最大的线程数 -->
<property name="maxConcurrentConsumers" value="15"></property>
</bean>
<!-- 第二个消息监听容器 -->
<bean id="jmsContainer1"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory" />
<property name="destination" ref="registerValueIndexQueueDestination" />
<property name="messageListener" ref="registerValueIndexMessageListener" />
<property name="sessionTransacted" value="false"></property>
<!-- 设置固定的线程数 -->
<property name="concurrentConsumers" value="6"></property>
<!-- 设置动态的线程数 -->
<property name="concurrency" value="2-9"></property>
<!-- 设置最大的线程数 -->
<property name="maxConcurrentConsumers" value="15"></property>
</bean>
</beans>