<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>
分享到:
相关推荐
Spring集成ActiveMQ配置
NULL 博文链接:https://jackyin5918.iteye.com/blog/2004298
用于ACtiveMq 配置插件配置使用,配置介绍等,适合初学者
activemq 配置说明与activemq入门讲解
Spring集成ActiveMQ配置
ActiveMQ配置Mysql8为持久化方式所需Jar包
activemq 配置的相关文档,助你完善activeMQ的配置
spring activeMQ demo 配置
......................... <!-- 持久化策略 --> <!-- Oracle DataSource Sample Setup --> </bean>
ActiveMQ配置说明,包括java内存调整,主从集群配置,自动清理离线客户端(避免长时间持久订阅占用内存)等
NULL 博文链接:https://wukele.iteye.com/blog/2308104
详细描述了ActiveMQ消息过期-时间设置和自动清除解决方案。
ActiveMQ整合MySQL实现消息持久化所需jar包 aspectjrt-1.9.2.jar commons-collections-3.1.jar commons-dbcp-1.2.1.jar commons-dbcp2-2.5.0.jar commons-pool-1.2.jar commons-pool2-2.5.0.jar mysql-connector-...
#activemq配置 #默认情况下activemq提供的是queue模式 true是可以使用topic,false是仅使用queue模式 spring.jms.pub-sub-domain: true # 设置连接的activemq服务器 spring.activemq.broker-url=failover:(tcp://...