`

rabbitMQ高级整合应用第四篇 消息监听适配器

 
阅读更多

RabbitMQ学习系列第二十二篇 高级整合 第四篇MessageListenerAdapter

 

MessageListenerAdaoter:即消息监听适配器。

代码演示:

在config类中修改:

SimpleMessageListenerContainer bean中(上一节课代码演示)修改如下:

 

/** 使用适配器模式 **/

MessageListenerAdapter adapter = new MessageListenerAdapter(new MessageDelegate());

 

messageListenerContainer.setMessageListener(adapter);

在来看看

MessageDelegate类:

运行测试类:

@Test

public void setRabbitTemplateTest() throws  Exception{

   //创建消息

   MessageProperties messageProperties = new MessageProperties();

   messageProperties.getHeaders().put("desc","这里可以添加一些描述信息");

   messageProperties.getHeaders().put("mytype","这里是自定义的");

   String msessage = "this spring msg";

   Message message = new Message(msessage.getBytes(),messageProperties);

   //使用模板

   rabbitTemplate.convertAndSend("topic001", "spring.amqp", message, new MessagePostProcessor() {

      @Override

      public Message postProcessMessage(Message message) throws AmqpException {

         System.out.println("------添加额外的信息---------");

         message.getMessageProperties().getHeaders().put("desc","这里可以添加一些描述信息。这是修改后的");

         message.getMessageProperties().getHeaders().put("attr","哎呦,这是额外的");

         return message;

      }

   });

 

 

}

运行效果:

 

说明我们使用适配器模式成功。

说明:

在MessageDelegate类中

handleMessage方法名称和参数不能修改。方法体我们可以自定义的。

为什么handlerMessage方法不能修改。我们来看看源码:

在源码中,有个DEFAULT_LISTENER_METHOD的静态变量。其值就是handleMessage了。这下知道为什么不能去掉了吧。

如果想要指定自己写的名字。其实也是可以的。

在config中listener在setadapter的时候可以指定默认的方法名称。

如下:

 

 

修改MessageDelegate:

 

运行测试:

 

我们在控制台可以看到,调用了我们自定义的方法了。

说明,修改默认调用方法成功。

修改消息内容,不使用OBJ数组。使用字符串。

修改MessageDelegate类如下:

修改config.添加messageConverter:

MyMessageConveter类:

执行测试方法:

在控制台上正确的打印出来。说明我们修改消息转换类成功。

本文总结:

下节预告:

我们继续讲解自定义消息转换器

分享到:
评论

相关推荐

    RabbitMq与Spring整合实例

    将RabbitMQ与Spring整合,可以方便地在Spring应用中使用消息队列,实现异步通信和任务调度。 本实例主要介绍如何在Spring应用中集成RabbitMQ,构建一个完整的消息传递系统。首先,你需要确保已经安装了RabbitMQ...

    docker安装rabbitmq并整合springboot

    RabbitMQ 是一个基于 AMQP 协议的消息队列系统,广泛应用于企业级应用程序中。通过 Docker 安装 RabbitMQ,可以实现轻松快速的部署和管理。本文将指导您如何使用 Docker 安装 RabbitMQ,并整合 Spring Boot 实现消息...

    1 SpringBoot整合RabbitMQ-整合配置篇-源码数据库

    总的来说,本教程将引导你一步步地实现SpringBoot应用与RabbitMQ的整合,从配置RabbitMQ连接,到创建消息生产者和消费者,再到结合数据库操作,实现完整的业务流程。通过这个过程,你将深入理解SpringBoot的自动配置...

    java rabbitmq动态注册,监听实现

    综上所述,"java rabbitmq动态注册,监听实现"这个主题涵盖了Spring Boot与RabbitMQ的集成、动态注册消费者、消息监听、异常处理等多个核心知识点。通过合理地运用这些技术,可以构建一个灵活且可靠的分布式消息处理...

    RabbitMq整合使用

    RabbitMQ是一个开源的消息队列系统,基于AMQP(Advanced Message Queuing Protocol)协议,广泛应用于分布式系统中,用于处理异步任务、解耦组件以及实现流量控制。在Spring Boot框架中整合RabbitMQ,可以简化开发...

    SpringBoot+redis+RabbitMq整合实例

    对于RabbitMQ,可以定义消息监听器或者发送消息的方法,根据业务需求进行消息的生产和消费。 6. 测试和优化:编写测试用例,验证Redis和RabbitMQ的集成是否正常工作。根据实际性能和需求,可以调整Redis的缓存策略...

    canal + mysql + rabbitmq步骤(CanalListener)

    - SpringBoot应用监听RabbitMQ消息,接收到事件后根据业务逻辑同步到ES或Redis缓存。 8. **安全与性能优化** - 为了保证数据一致性,需要考虑幂等性和重试机制。 - 调整Canal和RabbitMQ的配置,如binlog解析频率...

    RabbitMq整合SSM案例

    "RabbitMQ整合SSM案例"是一个示例项目,展示了如何将消息队列系统RabbitMQ与Spring、SpringMVC和MyBatis这三大流行Java框架进行整合,同时利用Maven作为项目构建工具。以下是对这个案例涉及的知识点的详细解释: **...

    SpringBoot整合RabbitMQ.zip

    SpringBoot整合RabbitMQ的详细过程 **1.该篇博文首先讲述了交换机和队列之间的绑定关系** ①direct、②fanout、③topic **2.然后讲消息的回调** 四种情况下,确认触发哪个回调函数: ①消息推送到server,但是在...

    springboot整合rabbitmq,开启手工确认。保证消息100%投递

    在Spring Boot应用中整合RabbitMQ,以确保消息100%投递,是一个关键的实践,特别是对于那些需要高可靠性和数据一致性的系统。RabbitMQ是一个流行的开源消息代理,它遵循Advanced Message Queuing Protocol (AMQP)...

    RabbitMQ整合spring示例代码(java maven)

    3. **声明消息监听器**:通过实现`RabbitListener`注解或配置`SimpleMessageListenerContainer`,定义消息监听器以接收和处理来自RabbitMQ的消息。监听器可以是匿名的,也可以关联到特定的队列。 4. **发送消息**:...

    RabbitMQ+SSM整合

    此外,我们还可以利用Spring的注解驱动能力,如`@RabbitListener`来定义消息监听器,简化消息消费的代码。 接着,我们考虑如何与SpringMVC结合。SpringMVC是Spring框架的一个子项目,专门用于处理Web应用的请求和...

    RabbitMQ与SpringMVC集成

    4. 定义消息监听器:可以创建`@RabbitListener`注解的方法来接收消息,也可以通过`SimpleMessageListenerContainer`配置监听队列。 5. 发送和消费消息:在业务代码中,通过`RabbitTemplate`发送消息到指定的交换机,...

    ssm整合webSocket、rabbitMq

    在现代Web应用中,实时性需求日益增强,SSM整合WebSocket和RabbitMQ能实现高效的数据同步与异步消息处理。 WebSocket是一种在客户端和服务器之间建立长连接的协议,它允许双向通信,即服务器可以主动向客户端推送...

    springboot整合stream使用rabbitmq作为消息中间件

    当我们谈论"SpringBoot整合stream使用rabbitmq作为消息中间件"时,我们涉及的关键技术点主要包括Spring Boot的Stream模块、RabbitMQ的使用以及它们如何协同工作来实现高效的微服务通信。 Spring Boot Stream模块是...

    spring整合rabbitmq的实例

    本文将详细介绍如何整合Spring与RabbitMQ,以实现高效的消息传递。 首先,我们要理解Spring对RabbitMQ的支持主要体现在Spring AMQP项目中,它为RabbitMQ提供了一套高级抽象层,使得开发者能够更加便捷地使用...

    rabbitmq 实现消息插队

    本篇文章将深入探讨如何使用RabbitMQ实现消息插队,以"多人投资"为例,重点讲解手动投资与自动投资的消息处理流程。 首先,我们需要理解RabbitMQ的基本概念。在RabbitMQ中,生产者(Producer)负责发布消息,消费者...

    Springboot+RabbitMQ 消息中间件

    在IT行业中,消息中间件是实现系统间异步通信、解耦合的重要工具,而SpringBoot结合RabbitMQ的整合应用则为开发者提供了便捷的消息处理框架。本文将深入探讨SpringBoot与RabbitMQ的集成,以及如何实现消息的发送、...

    springBoot整合RabbitMQ案例

    SpringBoot整合RabbitMQ是一个常见的后端开发任务,它涉及到分布式消息传递和Java应用程序的集成。RabbitMQ是一个开源的消息代理和队列服务器,而SpringBoot是基于Spring框架的简化版,提供了快速构建应用程序的方式...

Global site tag (gtag.js) - Google Analytics