在本章中我们将创建RabbitMQ的生产者工程,并实现生产者端代码实现。

springboot整合RabbitMQ生产者工程步骤如下:

  1. 创建maven工程
  2. 引入springboot及RabbitMQ依赖
  3. 创建SpringBoot启动类
  4. 添加配置文件
  5. 编写RabbitMQ配置类
  6. 编写发送消息类或者单元测试类

一、创建maven工程以及添加主要依赖。

创建maven工程略过,springboot工程我们首先需要加入parent标签指明为SpringBoot工程,然后我们引入amqp的starter。我们使用web工程接收url参数请求进行调用发送消息,所以同时也引入了starter-web。pom整体代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.xiaohui.mqconsumer</groupId><artifactId>MqConsumer</artifactId><version>1.0-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.4.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency></dependencies></project>

二、创建SpringBoot启动类

创建SpringBoot启动类,并创建main函数,函数内部使用SpringApplication.run 函数进行运行启动,类需要添加SpringBootApplication注解,代码如下:

package com.xiaohui.rabbitmq;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** 生产者启动类*/
@SpringBootApplication
public class ProducerApplication {public static void main(String[] args) {SpringApplication.run(ProducerApplication.class,args);}
}

三、添加SpringBoot配置文件application.properties

添加配置文件指明项目启动的web端口,以及RabbitMQ的服务端以及用户信息。配置代码如下:

#端口
server.port=8888
#rabbitMq配置
spring.rabbitmq.host=172.18.255.54
spring.rabbitmq.port=5672
spring.rabbitmq.virtual-host=/myhost
spring.rabbitmq.username=xiaohui
spring.rabbitmq.password=root

四、编写RabbitMQ的配置类

在rabbitMq配置类中我们进行声明消息队列、交换机,以及将消息队列绑定交换机以及路由信息。其中需要注意不要王杰配置类注解@Configuration,以及内部绑定函数注解@Bean。配置类代码如下:

package com.xiaohui.rabbitmq.config;import org.springframework.amqp.core.*;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class RabbitMqConfig {//交换机名称public static final String ITEM_TOPIC_EXCHANGE = "item_topic_exchange";//队列名称public static final String ITEM_QUEUE = "item_queue";//声明交换机@Bean("itemTopicExchange")public Exchange topicExchange(){return ExchangeBuilder.topicExchange(ITEM_TOPIC_EXCHANGE).durable(true).build();}//声明队列@Bean("itemQueue")public Queue itemQueue(){return QueueBuilder.durable(ITEM_QUEUE).build();}//绑定队列和交换机@Beanpublic Binding itemQueueExchage(@Qualifier("itemQueue")Queue itemQueue,@Qualifier("itemTopicExchange")Exchange itemTopicExchange){return BindingBuilder.bind(itemQueue).to(itemTopicExchange).with("item.#").noargs();}}

五、编写web模块代码实现通过url请求发送消息

创建Controller代码以及一个请求方法,并指明消息的发送路径以及参数(消息内容以及路由key)。使用到的注解有@RestController、@Getmapping、@RequestParam 。在webController中我们注入RabbitMQ的RabbitTemplate对象进行返送消息。使用其主要方法:

org.springframework.amqp.rabbit.core.RabbitTemplate#convertAndSend(java.lang.String, java.lang.String, java.lang.Object)。

其代码如下:

package com.xiaohui.rabbitmq.controller;import com.xiaohui.rabbitmq.config.RabbitMqConfig;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;@RestController
public class MsgController {@AutowiredRabbitTemplate rabbitTemplate;@GetMapping("/sendMsg")public String sendMsg(@RequestParam String msg,@RequestParam String key){rabbitTemplate.convertAndSend(RabbitMqConfig.ITEM_TOPIC_EXCHANGE,key,msg);return "消息发送成功!";}
}

至此,SpringBoot整合RabbitMQ生产者代码全部实现完毕,消费者整合请看下一篇文章,整体项目工程目录如下:

RabbitMq(八) SpringBoot整合RabbitMQ 生产者代码实现相关推荐

  1. RabbitMq(九) SpringBoot整合RabbitMQ消费者示例代码

    概述 在上一篇我们介绍了SpringBoot整合RabbitMQ生产者代码,本章我们介绍SpringBoot整合RabbitMQ,实现消费者工程的代码实现.与生产者集成相比,集成消费者不需要进行添加配 ...

  2. SpringBoot整合RabbitMQ(包含生产者和消费者)

    生产者 创建一个SpringBoot项目springboot-producer,作为RabbitMQ的生产者. 在pom文件中引入相关的依赖坐标 <dependency><group ...

  3. 九、springboot整合rabbitMQ

    springboot整合rabbitMQ 简介 rabbitMQ是部署最广泛的开源消息代理. rabbitMQ轻量级,易于在内部和云中部署. 它支持多种消息传递协议. RabbitMQ可以部署在分布式 ...

  4. RabbitMQ,RabbitMQ 的工作模式,Spring 整合 RabbitMQ,Springboot 整合RabbitMQ

    什么是RabbitMQ 1.1 MQ概述 MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器.多用于分布式系统之间进行通信. ⚫ MQ,消息队列,存储消息的中间件 ⚫ ...

  5. SpringBoot整合 ActiveMQ、SpringBoot整合RabbitMQ、SpringBoot整合Kafka

    1.概念:SpringBoot 整合消息服务2.具体内容对于异步消息组件在实际的应用之中会有两类:· JMS:代表作就是 ActiveMQ,但是其性能不高,因为其是用 java 程序实现的:· AMQ ...

  6. Springboot整合一之Springboot整合RabbitMQ

    前言 目前,springboot已然成为了最热的java开发整合框架,主要是因其简单的配置,并且本身提供了很多与第三方框架的整合,甚至可以让我们在短短的几分钟里就可以搭建一个完整的项目架构.所以,博主 ...

  7. Springboot整合RabbitMQ,包含direct,topic,fanout三种模式的整合

    一 RabbitMQ的介绍 RabbitMQ是消息中间件的一种,消息中间件即分布式系统中完成消息的发送和接收的基础软件.这些软件有很多,包括ActiveMQ(apache公司的),RocketMQ(阿 ...

  8. SpringBoot 整合RabbitMq

    SpringBoot 整合RabbitMq (黑马讲义) SpringAMQP是基于RabbitMQ封装的一套模板,并且还利用SpringBoot对其实现了自动装配,使用起来非常方便. SpringA ...

  9. RabbitMQ原理及SpringBoot整合RabbitMQ

    RabbitMQ原理及SpringBoot整合RabbitMQ 1. RabbitMQ环境搭建 参考:https://blog.csdn.net/u013071014/article/details/ ...

最新文章

  1. 使用netstat检测及监测网络连接
  2. 爬虫 | 正则表达式提取腾讯教育新闻链接及图片链接
  3. linux kernel中local_irq_disable()、local_irq_enable()代码解读
  4. c语言大数位加法,求用C编个大数加减法运算程序
  5. alibaba Fastjson的JOSN解析库 -
  6. (转)剖析Delphi中的构造和析构
  7. linux下阻塞的系统调用,Linux下文件的阻塞与非阻塞对部分系统调用的影响
  8. 2018年的最后一篇随笔
  9. grass gis怎么使用_使用GRASS GIS返回学校
  10. 8月第4周回顾:Delphi2009发布 CCIE增加英文面试
  11. 电脑小米手机,小米手机怎么连接电脑?
  12. matlab绘制二元函数,matlab绘制二元函数z=x∧2+y∧2,y=0,y=x∧2,z=0的图像
  13. Unity—英雄无敌(前方高能)
  14. 【翻译】智能制造中EDA 应用及益处系列之四:精密故障检测与分类(FDC)
  15. php screw 密钥,php加密 php_screw Web程序 - 贪吃蛇学院-专业IT技术平台
  16. 计算机有哪些值得参加的比赛
  17. i3 10100f和i5 9600kf 哪个好
  18. 隐藏在今日头条百亿市值背后的算法:巨大可能与现实困境
  19. 微网站 源码 php,php 微网站 实例源码(pc手机平板 均可浏览)
  20. 若要运行此应用程序,您必须首先安装,NET Framework的以下版本之一(附链接)

热门文章

  1. Python使用pdfkit、wkhtmltopdf将html转换为pdf错误记录文档
  2. Log4j2日志框架集成Slf4j日志门面
  3. SpringCloud集成Security安全(Config配置中心)
  4. AQS(AbstractQuenedSynchronizer)详解
  5. 谷歌浏览器安卓版_谷歌Chrome Canary 82安卓版现可复制图片到剪贴板
  6. STL(八)——向量vector
  7. PC,H5,APP的概念和区别
  8. 计算机网络基础笔记 运输层协议UDP/TCP
  9. webpack打包生成的dist文件如何运行
  10. 用ViewPager实现轮播效果