项目中因为要监听IBM MQ 队列的消息,想到用Spring JMS来做
Spring JMS介绍
Spring对JMS(Java Message Service)的封装,简化了代码量,便于使用
下面直接贴代码来说明
定义MQ连接工厂
<bean id="testFeMQQueueConnectionFactory" class="com.ibm.mq.jms.MQQueueConnectionFactory">
<property name="hostName" value="${HOSTNAME}" />
<property name="port" value="${PORT}" />
<property name="queueManager" value="${MQMANAGERNAME}" />
<property name="channel" value="${CHANNEL}" />
<property name="CCSID" value="${CCSID}" />
<property name="transportType" value="1" />
</bean>
定义工厂适配器
<bean id="testUserCredentialsConnectionFactoryAdapter"
class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
<property name="targetConnectionFactory" ref="testMQQueueConnectionFactory" />
</bean>
队列定义
<bean id="testMQQueue" class="com.ibm.mq.jms.MQQueue">
<constructor-arg name="queueManagerName" value="${MQMANAGERNAME}" />
<constructor-arg name="queueName" value="${MQ_QUEUE_NAME}" />
</bean>
队列监听容器
<bean id="testListenserContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer"
lazy-init="false">
<property name="connectionFactory"
ref="testUserCredentialsConnectionFactoryAdapter" />
<property name="destination" ref="testMQQueue" />
<property name="messageListener" ref="testMessageListener" />
<property name="sessionTransacted" value="false" />
<!-- 设置固定的线程数 -->
<property name="concurrentConsumers" value="10"></property>
</bean>
消息监听
package com.liyghting.mq.listener;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
@Service
public class TestMessageListener implements MessageListener {
private static final Logger logger = LoggerFactory.getLogger(TestMessageListener .class);
@Override
public void onMessage(Message message) {
TextMessage textMessage = (TextMessage)message;
try {
String msg = textMessage.getText();
logger.info("消息[{}]",msg);
} catch (JMSException e) {
logger.error("消息监听异常", e);
}
}
}
分享到:
相关推荐
Spring 集成 IBM MQ 监听配置,包括用户管理配置和一些基础配置信息
1) 本工程主要演示在SPRING BOOT工程中怎样使用JMS集成IBM-MQ及TLQ两种消息中间件产品 2) 使用SPRING BOOT Conditional机制实现了两种产品按需加载,工程会根据配置文件开关动态加载 3) 实现了普通队列消息发送与...
spring boot jsm ibmmq topic queue 两种方式实现
spring的Applicationcontext对事件的监听,在一个applicationContext范围内,实现类似MQ的效果
这是一个使用Spring 链接IBM MQ的Demo,MQ版本是7.5,经测试是好用滴~
带有 JMS 1.0.2 和 Spring 3.2.x 的 IBM MQ 使用 IBM MQ 和 Spring 3.2.x 的 JMS 1.0.2 示例配置
详细内容: SpringJMS整合ActiveMQ.doc 详细说明文档 apache-activemq-5.8.0-bin.zip ActiveMQ安装包 JMSTest.rar MyEclipse8.5下web工程
Spring + JMS + MQ Connection
JMS与SPRING的整合实例(基于Apache ActiveMQ) 定义JMS连接工厂 定义JMS Template 定义消息目的地 定义接收监听器 定义一个JMS话题 定义消费者(接收端) 定义发布者 JAVA核心代码一般由三个部分组成: 监听器...
spring-mq完美整合示例,在工作中用的activeMQ,这个是spring整合mq
本人开发的spring jms项目,已经上线近一年了,这里是我项目jms配置文件,使用的是spring jms 整合weblogic jms。如果真的需要,请咨询我,并且附上我上传的这个配置文件,附近中没有带有这个文件,一律不作任何回答...
IBM MQ JMS Spring组件该存储库包含有助于向Spring开发人员提供IBM MQ JMS软件包的轻松配置的代码。 该库包含: 用于应用程序的mq-jms-spring-boot-starter安装及使用该软件包的编译版本可以从Maven Central自动下载...
springboot工程集成mq业务,配置及调用,便于理解,适合新手。
工程可以导入直接运行,里面有说明文件!里面书写了直接生成工厂和使用连接池的运行效果,可以非常清晰的学习关于MQ的连接池使用。
activeMQ和Spring集成的 SpringJMS示例代码,适合新手,老鸟勿喷请绕道。ps:为什么传个资源一定要设置下载分呢
JMS如何整合Spring,简单实例,仅供参考
spring容器启动和关闭时事件监听;spring容器启动和关闭时事件监听;spring容器启动和关闭时事件监听
spring3.0整合了activemQ和jms可以发送信息和接收消息
完整jms整合好的spring的java工程,直接运行activeMq就可以运行!
Spring对JMS提供了很好的支持,可以通过JmsTemplate来方便地实现消息服务。本例通过activeMQ服务器模拟了消息的发送与接收。需要注意的是,activeMQ的运行依赖jdk的环境,而且对jdk的版本也有要求,我用的是jdk1.6+...