首页 > 其他分享 >【RabbitMQ】SpringAMQP--消息转换器

【RabbitMQ】SpringAMQP--消息转换器

时间:2024-06-09 09:43:59浏览次数:22  
标签:发送 SpringAMQP -- object RabbitMQ queue 发布者 msg class

在 Spring AMQP 的发送方法中,接收消息的类型是 Object,也就是说我们可以发送任意对象类型的消息,Spring AMQP 会帮我们序列化为字节后发送。

测试发送Object类型消息

1.声明队列

@Configuration
public class FanoutConfig {
@Bean
public Queue objectQueue(){
return new Queue("object.queue");
}
}

运行消费者后:

2.发送消息

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringAmqpTest {
@Autowired
private RabbitTemplate rabbitTemplate;
@Test
public void testSendObjectQueue(){
Map<String,Object> msg = new HashMap<>();
msg.put("name","柳岩");
msg.put("age",26);
rabbitTemplate.convertAndSend("object.queue",msg);
}
}

运行发布者后:

 

3.使用基于JDK的ObjectOutputstream完成序列化
3.1在父工程中引入依赖(发布者与消费者都需要使用)

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>

 

3.2在发布者服务与消费者服务声明MessageConverter

@Bean
public MessageConverter messageConverter(){
return new Jackson2JsonMessageConverter();
}

3.3发布者服务结果
先清理object.queue队列中的信息

 在运行发布者后:

 3.4消费者服务结果

//消费者代码
@Component
public class SpringRabbitListener {

@RabbitListener(queues = "object.queue")
public void listenObjectQueue(Map<String,Object> msg){
System.out.println("接收到object.queue的消息:" + msg);
}

}

运行后的结果:

 

标签:发送,SpringAMQP,--,object,RabbitMQ,queue,发布者,msg,class
From: https://www.cnblogs.com/wjzohou/p/18238951

相关文章

  • 如何增加虚拟内存?
    背景在配置服务器以运行llama3-8b-instruct的过程中出现内存空间不足的提示:"/usr/local/lib/python3.10/dist-packages/transformers/modeling_utils.py",line508,inload_state_dictwithsafe_open(checkpoint_file,framework="pt")asf:RuntimeError:unabletomm......
  • 定时器更新界面,线程报错
    项目场景:在javafx框架下使用线程更新UI的时候,出现无法正常更新UI。问题代码如下:packageclock;importjava.util.Calendar;importjava.util.GregorianCalendar;importjava.util.Timer;importjava.util.TimerTask;importjavafx.application.Application;importj......
  • 【源码】Spring Data JPA原理解析之事务执行原理
     SpringDataJPA系列1、SpringBoot集成JPA及基本使用2、SpringDataJPACriteria查询、部分字段查询3、SpringDataJPA数据批量插入、批量更新真的用对了吗4、SpringDataJPA的一对一、LazyInitializationException异常、一对多、多对多操作5、SpringDataJPA自定义......
  • 深入浅出,解析ChatGPT背后的工作原理
    自ChatGPT发布以来,已经吸引了无数人一探究竟。但ChatGPT实际上是如何工作的?尽管它内部实现的细节尚未公布,我们却可以从最近的研究中一窥它的基本原理。ChatGPT是OpenAI发布的最新语言模型,比其前身GPT-3有显著提升。与许多大型语言模型类似,ChatGPT能以不同样式、不......
  • 张宇1000和李林880究竟哪个更难?
    24李林跌落神坛,张宇一战封神!张宇1000和李林880,谁的基础篇更“超纲”?谁覆盖的知识点更多?谁的概念题更多?谁的“强化难度”题更难?基础篇里为什么有“跨专题”的题,都是怎么跨的? 先看880和1000的总体难度。知能行AI教练,用5个等级来反映你的真实解题能力。张宇1000......
  • 【资源分享】MATLAB 2024a免费下载安装
    :::block-1“时问桫椤”是一个致力于为本科生到研究生教育阶段提供帮助的不太正式的公众号。我们旨在在大家感到困惑、痛苦或面临困难时伸出援手。通过总结广大研究生的经验,帮助大家尽早适应研究生生活,尽快了解科研的本质。祝一切顺利!——时问桫椤:::获取方法“时问桫......
  • Linux:基本指令
    文章目录ls指令pwd指令cd指令touch指令mkdir指令rmdir指令&&rm指令cp指令man指令echo指令输出重定向追加重定向cat指令输入重定向mv指令which指令alias指令more&&less指令head&&tail指令事件相关的指令date显示时间戳cal指令find指令grep指令zip&&unzip指令ta......
  • 【精品规划推荐】石油石化行业数字化顶层设计
    端午佳节将至,祝愿各位朋友和家人如龙舟般勇猛向前,事业风生水起;如粽叶般翠绿常在,生活如意顺心。祝各位朋友和家人端午快乐,阖家幸福!记得小时候前一天晚上和家人一块包粽子,睡觉前念念不忘的第二天早上起来吃粽子,只有枣和无枣两种馅,第二天早上吃完热腾腾的粽子才去上学。挺怀念过去......
  • 方案10:ACS备付金转账系统
      1、虚拟账户:商户主账户支持设置虚拟收款账号付款人可以通过转账形式付款给虚拟收款账号资金统一归集在汇聚支付商户主账户。2、基于商户订单号,智能生成收款账号付款人可以通过转账的形式完成订单的支付资金统一归集在快付支付商户主账户。3、为每个主账户分配可以......
  • 基于 Vue 与 SpringBoot 框架的学生成绩分析 和弱项辅助系统设计
    摘   要针对相关学科考试中遇到的学生弱项管理情况,设计了一套基于 B/S 架构的学生弱项辅助系统。系统采用前后端分离开发,前端使用VUE 框架,后端使用SpringBoot框架实现,使用mysql数据库来进行数据持久层的搭建。前后端通过 Axios库进行数据交互。系统在数据管理和......