1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans" 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-3.0.xsd">
- <description>JMS高级应用配置(NON_PERSISTENT,DURIABLE,SELECTOR)</description>
- <!-- ActiveMQ 连接工厂 -->
- <bean id="advancedConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
- <property name="brokerURL" value="${jms.broker_url}" />
- <!-- 对PERSISTENT的消息进行异步发送(NON_PERSISTENT消息默认异步发送) -->
- <!-- <property name="useAsyncSend" value="true" /> -->
- </bean>
- <!-- 持久化主题订阅者ActiveMQ 连接工厂 -->
- <bean id="advancedTopicConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
- <property name="brokerURL" value="${jms.broker_url}" />
- <!-- Durable订阅者必须设置ClientId -->
- <property name="clientID" value="${jms.clicentId}" />
- </bean>
- <!-- Spring Caching 连接工厂 -->
- <bean id="advancedCachingConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
- <property name="targetConnectionFactory" ref="advancedConnectionFactory" />
- <property name="sessionCacheSize" value="10" />
- </bean>
- <!-- Queue定义 -->
- <bean id="advancedNotifyQueue" class="org.apache.activemq.command.ActiveMQQueue">
- <constructor-arg value="q.advanced.notify" />
- </bean>
- <!-- Topic定义 -->
- <bean id="advancedNotifyTopic" class="org.apache.activemq.command.ActiveMQTopic">
- <constructor-arg value="t.advanced.notify" />
- </bean>
- <!-- Spring JMS Template -->
- <bean id="advancedJmsTemplate" class="org.springframework.jms.core.JmsTemplate">
- <property name="connectionFactory" ref="advancedCachingConnectionFactory" />
- <!-- 使 deliveryMode, priority, timeToLive设置生效-->
- <property name="explicitQosEnabled" value="true" />
- <!-- 设置NON_PERSISTENT模式, 默认为PERSISTENT -->
- <property name="deliveryPersistent" value="false" />
- <!-- 设置优先级, 默认为4 -->
- <property name="priority" value="9" />
- </bean>
- <!-- 使用Spring JmsTemplate的消息生产者 -->
- <bean id="advancedNotifyMessageProducer" class="com.pentair.showcase.jms.advanced.AdvancedNotifyMessageProducer">
- <property name="jmsTemplate" ref="advancedJmsTemplate" />
- <property name="notifyQueue" ref="advancedNotifyQueue" />
- <property name="notifyTopic" ref="advancedNotifyTopic" />
- </bean>
- <!-- 异步接收Queue消息Container -->
- <bean id="advancedQueueContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
- <property name="connectionFactory" ref="advancedConnectionFactory" />
- <property name="destination" ref="advancedNotifyQueue" />
- <property name="messageListener" ref="advancedNotifyMessageListener" />
- <!-- 初始5个Consumer, 可动态扩展到10 -->
- <property name="concurrentConsumers" value="5" />
- <property name="maxConcurrentConsumers" value="10" />
- <!-- 设置消息确认模式为Client -->
- <property name="sessionAcknowledgeModeName" value="CLIENT_ACKNOWLEDGE" />
- </bean>
- <!-- 异步接收Topic消息Container -->
- <bean id="advancedTopicContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
- <property name="connectionFactory" ref="advancedTopicConnectionFactory" />
- <property name="destination" ref="advancedNotifyTopic" />
- <property name="messageListener" ref="advancedNotifyMessageListener" />
- <!-- JMS Selector消息过滤器 -->
- <property name="messageSelector" value="objectType='user'" />
- <!-- 持久化订阅者 -->
- <property name="subscriptionDurable" value="true" />
- </bean>
- <!-- 异步接收消息处理类 -->
- <bean id="advancedNotifyMessageListener" class="com.pentair.showcase.jms.advanced.AdvancedNotifyMessageListener" />
- </beans>
|