项目中因为要监听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) 实现了普通队列消息发送与...
- 然后,配置IBM MQ连接的相关属性,如`spring.jms_ibmmq.connectionFactory.jndi-name`、`spring.jms_ibmmq.queueManager`、`spring.jms_ibmmq.channel`、`spring.jms_ibmmq.hostName`、`spring.jms_ibmmq.port`、...
在本文中,我们将深入探讨如何使用Spring框架与IBM MQ进行集成,实现消息队列的通信。这个Demo项目展示了如何在Spring应用中配置和使用IBM MQ 7.5版本,确保了其兼容性和有效性。 首先,我们需要理解Spring框架的...
SpringJMS是Spring框架的一部分,它提供了一种与Java消息服务(JMS)进行交互的简单方式。在本文中,我们将深入探讨SpringJMS的基本概念、如何与ActiveMQ集成,以及如何通过示例代码理解其工作原理。 1. **Spring...
总结一下,Spring与JMS的整合主要涉及ConnectionFactory的配置、JmsTemplate的使用以及监听器容器的设置。通过这些配置,我们可以方便地在Spring应用中实现基于消息的通信,从而提高系统的可扩展性和解耦性。在实际...
本文将深入探讨如何将IBM WebSphere MQ(简称IBM MQ)与JBoss应用程序服务器整合,并利用Spring框架来实现消息的读写。这一整合有助于提升系统的可扩展性和解耦性,使应用程序能够通过消息传递进行异步通信。 首先...
标题中的“基于soap over jms 的websphere mq与axis2的实现”涉及到的是在企业级应用中使用Web服务和消息中间件技术的具体实践。这里,`SOAP over JMS`指的是通过Java消息服务(JMS)传输SOAP消息,而`Websphere MQ`...
标题“spring-boot-ibmmq”表明我们正在讨论一个基于Spring Boot的应用程序,该应用程序集成了IBM MQ(Message Queue)技术。Spring Boot是Java生态系统中的一个流行框架,它简化了创建独立、生产级别的Spring应用...
1. **添加依赖**:首先,你需要在项目的构建文件(如Maven的pom.xml或Gradle的build.gradle)中添加Spring和JMS相关的依赖库,包括Spring的JMS模块以及JMS提供者的特定实现,例如Apache ActiveMQ、IBM MQ或Oracle ...
6. **JMS模板的配置**:Spring的配置文件中,可以通过`<bean>`标签来配置`JmsTemplate`,设置连接工厂、目的地等属性,使其能与实际的JMS提供者(如ActiveMQ、IBM WebSphere MQ等)对接。 7. **消息驱动的POJO(MDP...
消息中间件如ActiveMQ、RabbitMQ、IBM WebSphere MQ等,通过JMS接口与应用程序交互。 Spring JMS是Spring框架对JMS的封装,它提供了一种声明式的方式来配置JMS模板、监听容器等,极大地简化了开发者的任务。Spring ...
对于MQ,如IBM WebSphere MQ或RabbitMQ,Spring Boot也有相应的适配器来简化整合。 将这三个技术结合在一起,我们可以构建一个高效、响应式的Web应用,同时利用消息队列处理后台任务。例如,Spring Boot可以作为...
在Spring中,JMS的集成主要依赖于`spring-jms`模块,该模块提供了对各种JMS供应商的抽象和支持,例如ActiveMQ,RabbitMQ,IBM WebSphere MQ等。ActiveMQ是Apache软件基金会的一个开源项目,是一个功能丰富的JMS提供...
1. 配置 JMS 容器(如 ActiveMQ、IBM WebSphere MQ 或 JBoss MQ)。 2. 在 Spring 配置文件中定义 JmsTemplate 和消息目的地(队列或主题)。 3. 使用 JmsTemplate 的 send 方法发送消息,指定目的地和消息内容。 4....
2. **Tomcat与JMS**:虽然Tomcat本身并不直接支持JMS,但可以在Tomcat中部署一个支持JMS的容器,如Apache ActiveMQ或IBM WebSphere MQ。这些服务器将作为消息代理,接收和分发消息。在Tomcat中配置JMS,需要在`...
通过设置`DefaultMessageListenerContainer`的`transactionManager`属性,可以将消息监听与Spring事务管理相结合。 7. **异常处理** 在处理消息时,可能会遇到各种异常。通过实现`MessageListenerAdapter`并覆盖`...
如果项目中使用了Spring框架,可以通过Spring的JMS支持简化与MQ的交互。Spring提供了一个抽象层,可以简化连接管理、事务处理和异常处理。配置MQ连接工厂和目的地后,只需编写一个监听器或模板方法即可发送消息。...
为了运行和理解这个示例,你需要一个兼容JMS的服务器,如Apache ActiveMQ或IBM WebSphere MQ。你还需要正确配置服务器的连接信息,如URL、用户名和密码,以确保Spring应用能够连接并交互。 总的来说,"spring-jms-...
- **Spring框架集成**:Spring提供了JMS模板和监听器容器,简化了JMS的使用。 7. **最佳实践** - **性能优化**:例如,批量发送消息、合理设置消息缓存等。 - **安全性**:配置JMS提供者的安全策略,确保只有...