一、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了,那边一直监听的类就可以取到消息了。