1. 程式人生 > >spring中配置監聽隊列的MQ

spring中配置監聽隊列的MQ

msl tin listen ann lazy ati app ssa clas

一、spring中配置監聽隊列的MQ相關信息
註:${}是讀取propertites文件的常量,這裏忽略。綠色部分配置在接收和發送端都要配置。 <bean id="axx" class="com.ibm.mq.jms.MQQueueConnectionFactory"> <property name="hostName" value="${}" />
<property name="port" value="${}" />
<property name="queueManager" value="${}" />
<property name="channel" value="${}" />
<property name="CCSID" value="${}" />
<property name="transportType" value="1"/>
</bean>
<bean id="bxx"
class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
<property name="targetConnectionFactory" ref="axx" />
</bean>

<!-- 定義一個隊列,因為mq中消息有queue和topic的區別 -->
<bean id="qxx" class="com.ibm.mq.jms.MQQueue">
<constructor-arg index="0" value="${mq.queueManager}" />
<constructor-arg index="1" value="${mq.corp.rev.queue}" />
</bean>
<!-- 定義監聽隊列的容器,註意容器下包含的屬性變量,至少要有前三個--> <bean id="lxx"
class="org.springframework.jms.listener.DefaultMessageListenerContainer"
lazy-init="false">
<property name="connectionFactory" ref="bxx" />
<property name="destination" ref="qxx" />
<property name="messageListener" ref="testListener
" />
<property name="sessionTransacted" value="true"/>
</bean>
<!-- 定義隊列使用的監聽器類,有三種,這裏不想說了。這個類配置在監聽容器裏了,一直監聽隊列,對消息進行處理->
<bean id="testListener" class="某個實現了jmsListener的實現類,如繼承了MessageListener" />

一、spring中配置發送消息的jmsTemplete的MQ相關信息

<bean id="axx" class="com.ibm.mq.jms.MQQueueConnectionFactory"> <property name="hostName" value="${}" />
<property name="port" value="${}" />
<property name="queueManager" value="${}" />
<property name="channel" value="${}" />
<property name="CCSID" value="${}" />
<property name="transportType" value="1"/>
</bean>
<bean id="bxx"
class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
<property name="targetConnectionFactory" ref="axx" />
</bean>

<!-- 定義一個隊列,因為mq中消息有queue和topic的區別 -->
<bean id="qxx" class="com.ibm.mq.jms.MQQueue">
<constructor-arg index="0" value="${mq.queueManager}" />
<constructor-arg index="1" value="${mq.corp.rev.queue}" />
</bean>
<bean id="objJms" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="bxx" />
<property name="defaultDestination" ref="qxx" />
</bean>

<bean id="oxx" name="oxxx" class="某個自定義的發送類,直接使用自己的變量jmsTemplate的API進行send消息就ok了">
<property name="jmsTemplate" ref="objJms" />
</bean> 在service業務類中直接註入“oxx”類,就可以發消息到MQ了,那邊一直監聽的類就可以取到消息了。

spring中配置監聽隊列的MQ