Springboot接入RabbitMQ详细教程

本文适用于对 RabbitMQ 有所了解的人,在此不讨论MQ的原理,只讨论如何接入。其实Spring Boot 集成 RabbitMQ 非常简单,本文章使用的是Spring Boot 提供了spring-boot-starter-amqp 项目对消息各种支持。

接下来将进入正题,六步轻松教你接入RabbitMQ

1.配置pom文件所依赖的主要jar包

<dependency>
     <groupId>org.springframework.amqp</groupId>
     <artifactId>spring-rabbit</artifactId>
     <version>2.0.4.RELEASE</version>
</dependency>

2.配置文件(application.properties)

## rabbitmq
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.username=root
spring.rabbitmq.password=root
spring.rabbitmq.virtual-host=/

# rabbitmq消息确认
spring.rabbitmq.publisher-confirms=true
spring.rabbitmq.publisher-returns=true

## rabbitmq-config
rabbitmq.exchange-key = rabbitmq.test.exchange
rabbitmq.routing-key = rabbitmq.test.routing.key
rabbitmq.queue-name=rabbitmq.queue.name.test

3.交换机和队列绑定配置

@Value("${rabbitmq.queue-name}")
String queueName;

@Value("${rabbitmq.exchange-key}")
String exchangeKey;

@Value("${rabbitmq.routing-key}")
String routingKey;

@Bean(value = "${rabbitmq.queue-name}")
public Queue initOrderCancelQueue(){
    return new Queue(queueName) ;
}

@Bean(value = "${rabbitmq.exchange-key}")
public CustomExchange customExchange(){
    Map<String,Object> args=new HashMap<>();
    return new CustomExchange(exchangeKey,"topic",true,false,args);
}

@Bean
public Binding binding(@Qualifier(value = "${rabbitmq.queue-name}") Queue queue,
                       @Qualifier(value = "${rabbitmq.exchange-key}") CustomExchange exchange){
    return BindingBuilder
            .bind(queue)
            .to(exchange)
            .with(routingKey)
            .and(exchange.getArguments());
}

4.生产者

@Value("${rabbitmq.exchange-key}")
String exchangeKey;

@Autowired
private AmqpTemplate amqpTemplate;
/**
 * 发送MQ
 * @param routingKey
 * @param obj 参数
 */
public void sendNotification(String routingKey, Object obj){
    this.amqpTemplate.convertAndSend(exchangeKey,routingKey,obj);
}

5消费者

@RabbitHandler
@RabbitListener(queues = "${rabbitmq.queue-name}")
public void receiveRabbitmqMsg(Message msg, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long tag){
    String funcName="接收到RabbitmqMsg";
    logger.info("{}:{}",funcName,msg);
    try {

    }catch(Exception e) {

    }finally {

    }
}

6.测试

@Autowired
RabbitmqProducer producer;

@Value("${rabbitmq.routing-key}")
String routingKey;

public void sendMsg(){
    TestModel testModel =new TestModel();
    testModel.setName("fxx");
    testModel.setAge(18);
    testModel.setGender("girl");
    try {
        producer.sendNotification(routingKey,testModel);
    }catch (Exception e){
        logger.error("系统异常:"+e.toString());
    }
}

搞定!就这么简单,赶快自己动手试试吧

源码下载地址

  

原文地址:https://www.cnblogs.com/renyutao/p/11222427.html

时间: 2024-08-30 13:59:34

Springboot接入RabbitMQ详细教程的相关文章

SpringBoot入门最详细教程

https://www.jianshu.com/p/af3d5800f763 网上有很多springboot的入门教程,自己也因为项目要使用springboot,所以利用业余时间自学了下springboot和springcloud,使用下来发现springboot还是挺简单的,体现了极简的编程风格,大部分通用都是通过注解就可以完成,下面就来详细讲解下如何使用springboot来开发一个简单的restful api网关功能,可以提供给H5或者android.ios进行接口开发,还是很方便的. 1

Linux下部署RabbitMQ详细教程

本教程安装的版本号如下 下载地址 链接:https://pan.baidu.com/s/1yMFQ-any_lmXvOJWBi1MIw 提取码:oher 复制这段内容后打开百度网盘手机App,操作更方便哦 其他版本可以到官网上进行对应的下载 https://www.rabbitmq.com/ ※※特别注意※※ 1.安装rabbitmq之前需要安装erlang,并且两者需要对应的版本, 参考官网 https://www.rabbitmq.com/which-erlang.html 2.在安装之前,

Apple Pay接入详细教程

Apple Pay接入详细教程 来源:Yasin的简书 链接:http://www.jianshu.com/p/738aee78ba52# Apple Pay运行环境:iPhone6以上设备,操作系统最低iOS9.0以上,部分信息设置需要iOS9.2以上.目前还不支持企业证书添加. 环境搭建好后可以在模拟器上面运行,xcode7.2.1+iPhone6SP9.2系统下,系统会绑定几种虚拟的银行卡,和几个联系人,方便调试,支付也不会发生真实的付款,真的很方便. [TCO] 准备工作 在接入Appl

安装黑群晖存储系统详细教程,体验群晖存储功能

最近有个需求,东西太多了想搞个共享系统.本来使用linux系统做一个很容易的,比如Samba服务,vsftp服务等. 或者使用一些开源的存储系统比如,opennas,free4nas,openmediavault等等都可以,但都或多或少不那么尽人意.于是想到了群晖存储系统:Xpenology(官方地址:https://www.synology.com/zh-cn/company),以前买过一个群晖的存储设备,感觉这个系统不错,网上似乎也有安装到PC上的方法,于是就想折腾试试.也就有了这篇blog

申请社交平台appkey详细教程

申请社交平台appkey详细教程 大部分app都需要实现分享到微信.微博等社交平台的功能,但是在各个平台上申请appkey是一件很繁琐的事情.现在来分享一个申请社交平台appkey详细教程,在开发过程中,可以让其他人按照教程去申请,减少开发人员的工作量. 准备工作: 1.改变图片大小的软件,因为各个平台要求的应用logo大小都不一样! 2.应用签名生成工具. 签名生成工具可在微信平台下载.地址:https://github.com/mobileresearch/weibo_android_sdk

RabbitMQ基础教程之基本使用篇

RabbitMQ基础教程之基本使用篇 最近因为工作原因使用到RabbitMQ,之前也接触过其他的mq消息中间件,从实际使用感觉来看,却不太一样,正好趁着周末,可以好好看一下RabbitMQ的相关知识点:希望可以通过一些学习,可以搞清楚以下几点 基础环境搭建 可以怎么使用 实现原理是怎样的 实际工程中的使用(比如结合SpringBoot可以怎么玩) 相关博文,欢迎查看: <RabbitMq基础教程之安装与测试> <RabbitMq基础教程之基本概念> I. 前提准备 在开始之前,先得

RabbitMQ入门教程(十四):RabbitMQ单机集群搭建

原文:RabbitMQ入门教程(十四):RabbitMQ单机集群搭建 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/vbirdbest/article/details/78723467 分享一个朋友的人工智能教程.比较通俗易懂,风趣幽默,感兴趣的朋友可以去看看. 集群简介 理解集群先理解一下元数据 队列元数据:队列的名称和声明队列时设置的属性(是否持久化.是否自动删除.队列所属的节点)

安装python3的详细教程

安装python3的详细教程 环境:CentOS 7 1. 安装依赖环境 # yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel 2. 浏览器打开 https://www.python.org/ftp/python/ 查看最新的Python版本,标记为3.A

linux安装 Android Studio详细教程

安装 Android Studio详细教程 libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1 jdk1.8.0_25 android-studio-ide-141.2456560-linux.zip android-sdk_r24.4.1-linux.tgz  Android SDK中的adb程序是32位的,Ubuntu x64系统需要安装32位库文件,用于兼容32位的程序.如果不安装,adb会出错:java.io.IOExcepti