当前位置: 首页 > news >正文

延安网站建设公司电话艺考培训

延安网站建设公司电话,艺考培训,php网站开发实用技术课后习题,云服务器建设网站前言: 经过上面俩章学习,我们已经知道Rabbit的使用方式RabbitMQ 七种工作模式介绍_rabbitmq 工作模式-CSDN博客 RabbitMQ的工作队列在Spring Boot中实现(详解常⽤的⼯作模式)-CSDN博客作为⼀个消息队列,RabbitMQ也可以⽤作应⽤程…

前言:

经过上面俩章学习,我们已经知道Rabbit的使用方式
RabbitMQ 七种工作模式介绍_rabbitmq 工作模式-CSDN博客

RabbitMQ的工作队列在Spring Boot中实现(详解常⽤的⼯作模式)-CSDN博客
作为⼀个消息队列,RabbitMQ也可以⽤作应⽤程序之间的通信.上述代码⽣产者和消费者代码放在不同的应⽤中即可完成不同应⽤程序的通信.

目录

前言:

一.创建项目 

二.订单系统(⽣产者) 

三.物流系统(消费者)

四.发送消息格式为对象 



接下来我们来看,基于SpringBoot+RabbitMQ完成应⽤间的通信.
需求描述:
⽤⼾下单成功之后,通知物流系统,进⾏发货.(只讲应⽤通信,不做具体功能实现)

 

一.创建项目 

为⽅便演示,把两个项⽬放在⼀个项⽬中

1)1. 创建⼀个空的项⽬rabbitmq-communication(其实就是⼀个空的⽂件夹)

2) 在这个项⽬⾥,创建Module

3)后续流程和创建SpringBoot项⽬⼀样 

 4)若发现识别不到java类文件

只需右击改项目文件,点进对应选项,修改成Maven即可


二.订单系统(⽣产者) 

1)配置相应文件 

2) 声明队列

package com.bite.order.config;import org.springframework.amqp.core.Queue;
import org.springframework.amqp.core.QueueBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class RabbitmqConfig {@Bean("orderQueue")public Queue orderQueue() {return QueueBuilder.durable("order.create").build();}
}

3) 编写下单接⼝,下单成功之后,发送订单消息

package com.bite.order.controller;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.UUID;@RequestMapping("/order")
@RestController
public class OrderController {@Autowiredprivate RabbitTemplate rabbitTemplate;@RequestMapping("/create")public String create() {//省略相关操作 例如校验参数 相关数据库操作 //主要测试代码是否最后成功发送即可String orderId = UUID.randomUUID().toString();rabbitTemplate.convertAndSend("","order.create","下单成功, 订单 ID:"+orderId);return "下单成功!";}
}

4) 启动订单系统(生产者,观察结果)

 


三.物流系统(消费者)

 1)配置相应文件 

8080端⼝已经被订单系统占⽤了,修改物流系统的端⼝号为9090

 2)监听队列

package com.bite.logistics.listener;import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;@Component
public class OrderListener {@RabbitListener(queues = "order.create")public void handleMessage(String message) {System.out.println("接收订单信息:"+message);}
}

结果: 

接收到消息:下单成功, 订单ID:a4c1dbdc-688d-430a-ac16-bca713f85940
接收到消息:下单成功, 订单ID:5d190f19-7a8c-4866-b6e7-2b2bbe79412d

四.发送消息格式为对象 

定义一个对象

import lombok.Data;
@Data
public class OrderInfo {private String orderId;private String name;
}

生产者:

    @RequestMapping("/create2")public String create2() {//省略相关操作 例如校验参数 相关数据库操作//主要测试代码是否最后成功发送即可OrderInfo orderInfo = new OrderInfo();orderInfo.setOrderId(UUID.randomUUID().toString());orderInfo.setName("商品:"+new Random().nextInt(100));rabbitTemplate.convertAndSend("","order.create",orderInfo);return "下单成功!";}

 

 

此时为乱码,因此需要序列化

SpringAMQP提供了 Jackson2JsonMessageConverter 和
MappingJackson2MessageConverter 等转换器,我们需要把⼀个 MessageConverter 设置到 RabbitTemplate 中.

在config包里面添加 

    @Beanpublic RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {RabbitTemplate template = new RabbitTemplate(connectionFactory);template.setMessageConverter(jackson2JsonMessageConverter()); // 设置消息转换器return template;}private Jackson2JsonMessageConverter jackson2JsonMessageConverter() {return new Jackson2JsonMessageConverter();}

消费者: 

    @RabbitListener(queues = "order.create")public void handleMessage2(OrderInfo orderInfo) {System.out.println("接收订单信息OrderInfo :"+orderInfo);}

 


结语: 写博客不仅仅是为了分享学习经历,同时这也有利于我巩固知识点,总结该知识点,由于作者水平有限,对文章有任何问题的还请指出,接受大家的批评,让我改进。同时也希望读者们不吝啬你们的点赞+收藏+关注,你们的鼓励是我创作的最大动力!  

http://www.khdw.cn/news/13903.html

相关文章:

  • 宁波网络推广平台上海百度搜索排名优化
  • 上海做网站公司推荐广州市新闻最新消息
  • 平台网站模板素材图片seo怎么推广
  • 设计集合网站中国职业技能培训中心官网
  • 公司建立网站用于业务百度网盘下载速度慢破解方法
  • 网站开发首选免费刷推广链接的软件
  • wordpress 5.0文章编辑教程上海seo优化公司kinglink
  • 惠州百优做网站小程序熊掌号碉堡了seo博客
  • 网站改版目标网页制作官方网站
  • 网站建设需求书今日头条最新
  • 网站建设平台策划百度软件中心下载
  • 网站年报公示怎么做佛山网站设计实力乐云seo
  • 网站做搜索要用数据库吗北京疫情发布不再公布各区数据
  • 想学习做网站网站的优化策略方案
  • 网站个别页面做seoapp推广接单平台有哪些
  • 可信网站认证必需做吧嘉兴seo外包平台
  • 优秀企业宣传册样本整站优化代理
  • 网站会员收费怎么做南昌seo排名扣费
  • 深圳政府网官网首页seo智能优化
  • wordpress图文简介文章页西安seo网站排名
  • 成都网站营销seo多少费用长春seo推广
  • 网站开发嘉比格网络找竞价托管公司
  • 做断桥铝门窗网站天津做网站的
  • 网站建设现况分析百度的合作网站有哪些
  • 高端网站建设公司有必要做吗北京搜索引擎优化经理
  • 阿里巴巴免费做国际网站微信引流用什么软件好用
  • 做公司网站需要多久北京百度竞价
  • 深圳哪个做网站好优化av手机在线精品
  • 做的网站如何发更新阿森纳英超积分
  • 女人能做网站开发吗百度网址大全电脑版旧版本