`
libin0019
  • 浏览: 234478 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

ActiveMQ配置

阅读更多

 

<beans xmlns="http://www.springframework.org/schema/beans" 
  xmlns:amq="http://activemq.apache.org/schema/core"
  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.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">
  
  
<!-- ------ 第一部分:基础零件  ------->
<!-- 1. 配置ActiveMQ Broker 暂时采用在JVM中嵌入这种最简单的模式,
      当spring初始化时候,ActiveMQ embedded Broker 就会启动了。
-->
	<amq:broker useJmx="false" persistent="true">
	 <!-- 2.持久化消息 使用spring的listenerContainer,消息用持久化保存,服务器重启不会丢失 -->
		<amq:persistenceAdapter>
			<amq:amqPersistenceAdapter directory="d:/iteye/amq" />
		</amq:persistenceAdapter>
		<amq:transportConnectors>
			<amq:transportConnector uri="tcp://localhost:0" />
		</amq:transportConnectors>
	</amq:broker>
<!-- 连接外部的activeMQ 
	<amq:connectionFactory id="jmsConnectionFactory"
		brokerURL="tcp://localhost:61616?wireFormat.maxInactivityDuration=0"
	/>
-->
<!--  
	2. 配置(A)ConnectionFactory 连接工厂
	    由于前面配置的Broker是JVM embedded 所以URL为:vm://localhost 
-->
	<amq:connectionFactory id="jmsConnectionFactory"
		brokerURL="vm://localhost" />

<!--
	 3 配置(B)Queue 队列 使用Queue方式
-->
	<amq:queue name="QUEUE" physicalName="auto_check" />

<!--
     4. 配置(C)Converter 转换器
-->
	<bean id="defaultMessageConverter" class="com.iteye.queue.DefaultMessageConverter" />

	
<!-- -------第一部分:发送端 ---->	
<!--
    1 配置JmsTemplate JMS模版
   		   Spring提供的Template,绑定了(A)ConnectionFactory与(C)Converter。
-->
	<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
		<property name="connectionFactory">
			<!--  lets wrap in a pool to avoid creating a connection per send 
				  让包在池中,避免每发送一次就新建一个连接
			-->
			<bean class="org.springframework.jms.connection.SingleConnectionFactory">
				<property name="targetConnectionFactory" ref="jmsConnectionFactory" />
			</bean>
		</property>
		<!-- custom MessageConverter 
			 自定义消息转换器
		-->
		<property name="messageConverter" ref="defaultMessageConverter" />
	</bean>
	
<!-- 2.Producer 消息发送者,使用JmsTemplate发送消息,绑定了JmsTemplate (含A、C)与(B)Queue。-->
	<bean id="queueMessageProducer" class="com.iteye.queue.QueueMessageProducer">
		<property name="template" ref="jmsTemplate" />
		<property name="destination" ref="QUEUE" />
	</bean>	
<!-------第三部分:接收端----->
<!-- 1.接收处理者(MDP)使用Spring的MessageListenerAdapter,
	指定负责处理消息的POJO及其方法名,绑定(C)Converter。
-->
	<bean id="queueConsumer" class="com.iteye.queue.QueueConsumer">
		<property name="interaction" ref="autoCheckInteraction" />
	</bean>
	
	<bean id="queueListener"
		class="org.springframework.jms.listener.adapter.MessageListenerAdapter">
		<!-- 负责处理消息的对象 -->
		<constructor-arg ref="queueConsumer" />
		<!-- 指定处理消息的方法名-->
		<property name="defaultListenerMethod" value="receive" />
		<!-- 绑定转换器 -->
		<property name="messageConverter" ref="defaultMessageConverter" />
	</bean>
<!-- 2. listenerContainer 负责调度MDP, 绑定(A) connectionFactory, (B)Queue和MDP。listener container,MDP无需实现接口 -->
	<bean id="queueListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
		<property name="connectionFactory" ref="jmsConnectionFactory" />
		<property name="destination" ref="QUEUE" />
		<property name="messageListener" ref="queueListener" />
	</bean>
</beans>
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics