applicationContext-jms-advanced.xml 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
  4. <description>JMS高级应用配置(NON_PERSISTENT,DURIABLE,SELECTOR)</description>
  5. <!-- ActiveMQ 连接工厂 -->
  6. <bean id="advancedConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
  7. <property name="brokerURL" value="${jms.broker_url}" />
  8. <!-- 对PERSISTENT的消息进行异步发送(NON_PERSISTENT消息默认异步发送) -->
  9. <!-- <property name="useAsyncSend" value="true" /> -->
  10. </bean>
  11. <!-- 持久化主题订阅者ActiveMQ 连接工厂 -->
  12. <bean id="advancedTopicConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
  13. <property name="brokerURL" value="${jms.broker_url}" />
  14. <!-- Durable订阅者必须设置ClientId -->
  15. <property name="clientID" value="${jms.clicentId}" />
  16. </bean>
  17. <!-- Spring Caching 连接工厂 -->
  18. <bean id="advancedCachingConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
  19. <property name="targetConnectionFactory" ref="advancedConnectionFactory" />
  20. <property name="sessionCacheSize" value="10" />
  21. </bean>
  22. <!-- Queue定义 -->
  23. <bean id="advancedNotifyQueue" class="org.apache.activemq.command.ActiveMQQueue">
  24. <constructor-arg value="q.advanced.notify" />
  25. </bean>
  26. <!-- Topic定义 -->
  27. <bean id="advancedNotifyTopic" class="org.apache.activemq.command.ActiveMQTopic">
  28. <constructor-arg value="t.advanced.notify" />
  29. </bean>
  30. <!-- Spring JMS Template -->
  31. <bean id="advancedJmsTemplate" class="org.springframework.jms.core.JmsTemplate">
  32. <property name="connectionFactory" ref="advancedCachingConnectionFactory" />
  33. <!-- 使 deliveryMode, priority, timeToLive设置生效-->
  34. <property name="explicitQosEnabled" value="true" />
  35. <!-- 设置NON_PERSISTENT模式, 默认为PERSISTENT -->
  36. <property name="deliveryPersistent" value="false" />
  37. <!-- 设置优先级, 默认为4 -->
  38. <property name="priority" value="9" />
  39. </bean>
  40. <!-- 使用Spring JmsTemplate的消息生产者 -->
  41. <bean id="advancedNotifyMessageProducer" class="com.pentair.showcase.jms.advanced.AdvancedNotifyMessageProducer">
  42. <property name="jmsTemplate" ref="advancedJmsTemplate" />
  43. <property name="notifyQueue" ref="advancedNotifyQueue" />
  44. <property name="notifyTopic" ref="advancedNotifyTopic" />
  45. </bean>
  46. <!-- 异步接收Queue消息Container -->
  47. <bean id="advancedQueueContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
  48. <property name="connectionFactory" ref="advancedConnectionFactory" />
  49. <property name="destination" ref="advancedNotifyQueue" />
  50. <property name="messageListener" ref="advancedNotifyMessageListener" />
  51. <!-- 初始5个Consumer, 可动态扩展到10 -->
  52. <property name="concurrentConsumers" value="5" />
  53. <property name="maxConcurrentConsumers" value="10" />
  54. <!-- 设置消息确认模式为Client -->
  55. <property name="sessionAcknowledgeModeName" value="CLIENT_ACKNOWLEDGE" />
  56. </bean>
  57. <!-- 异步接收Topic消息Container -->
  58. <bean id="advancedTopicContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
  59. <property name="connectionFactory" ref="advancedTopicConnectionFactory" />
  60. <property name="destination" ref="advancedNotifyTopic" />
  61. <property name="messageListener" ref="advancedNotifyMessageListener" />
  62. <!-- JMS Selector消息过滤器 -->
  63. <property name="messageSelector" value="objectType='user'" />
  64. <!-- 持久化订阅者 -->
  65. <property name="subscriptionDurable" value="true" />
  66. </bean>
  67. <!-- 异步接收消息处理类 -->
  68. <bean id="advancedNotifyMessageListener" class="com.pentair.showcase.jms.advanced.AdvancedNotifyMessageListener" />
  69. </beans>