博客引用处(以下内容在原有博客基础上进行补充或更改,谢谢这些大牛的博客指导):
深入浅出JMS(三)–ActiveMQ简单的HelloWorld实例
以异步消息通信为例说明:
如何进行消息的发送?
利用spring提供的jmsTemplate来实现。
首先:
在spring配置文件中,配置生产者:
1,配置connectionFactory
-管理者,管理真正的ConnectionFactory(可以创建连接的对象)
spring提供的connectionFactory
-实际工作者
由对应的 JMS服务厂商提供,如 ActiveMQ 的连接工厂
2,如何发送消息呢?
-配置消息的发送对象jmsTemplate
spring提供的jmsTemplate,来具体执行发送操作。
-配置发送的消息类型
-点对点消息模式
-发布/订阅,消息模式
-配置消息队列的名称,必须和消费方保持一致。
然后配置实体类,来具体执行发送操作,里面注入对应消息模式的jmsTemplate实例。
<!-- 定义JmsTemplate的Topic类型 -->
<bean id="jmsTopicTemplate" class="org.springframework.jms.core.JmsTemplate">
<!-- 这个connectionFactory对应的是我们定义的Spring提供的那个ConnectionFactory对象 -->
<constructor-arg ref="connectionFactory" />
<!-- pub/sub模型(发布/订阅) -->
<property name="pubSubDomain" value="true" />
</bean>
然后:
在spring配置文件中,进行消费者配置
通过监听其的方式,配置不同消息模式的监听器。
<!-- 定义Queue监听器,并配置消费者的ActiveMQ,destination为通道名,要和发送方一致 -->
<jms:listener-container destination-type="queue" container-type="default" connection-factory="connectionFactory" acknowledge="auto">
<!-- 相当于就是消费者 destination为通道名,要和发送方一致,ref引入的时具体的监听器类 -->
<jms:listener destination="test.queue" ref="queueReceiver1"/>
<jms:listener destination="test.queue" ref="queueReceiver2"/>
</jms:listener-container>
提示:
对于点对点模式,如果有多个消费者,那么随机分配或者轮流消费。
个人理解,如果有错误的地方,还请各位大牛们批评指出!谢谢!