spring 使用RabbitMQ进行消息传递的示例代码

以下是Spring使用RabbitMQ进行消息传递的完整攻略,包含两个示例说明。

示例1:简单队列模式

步骤1:添加依赖

在pom.xml文件中添加以下依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

步骤2:配置文件

在application.properties文件中添加以下配置:

spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

步骤3:发送消息

import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Producer implements CommandLineRunner {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    public static void main(String[] args) {
        SpringApplication.run(Producer.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        String message = "Hello World!";
        rabbitTemplate.convertAndSend("my_queue", message);
        System.out.println("Message sent: " + message);
    }
}

步骤4:接收消息

import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Consumer {

    public static void main(String[] args) {
        SpringApplication.run(Consumer.class, args);
    }

    @RabbitListener(queues = "my_queue")
    public void receiveMessage(String message) {
        System.out.println("Message received: " + message);
    }
}

步骤5:运行程序

运行发送消息的程序后,您将看到以下输出:

Message sent: Hello World!

运行接收消息的程序后,您将看到以下输出:

Message received: Hello World!

示例2:工作队列模式

步骤1:添加依赖

同示例1。

步骤2:配置文件

同示例1。

步骤3:发送消息

import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Producer implements CommandLineRunner {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    public static void main(String[] args) {
        SpringApplication.run(Producer.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        for (int i = 1; i <= 10; i++) {
            String message = "Message " + i;
            rabbitTemplate.convertAndSend("my_queue", message);
            System.out.println("Message sent: " + message);
        }
    }
}

步骤4:接收消息

import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Consumer {

    public static void main(String[] args) {
        SpringApplication.run(Consumer.class, args);
    }

    @RabbitListener(queues = "my_queue")
    public void receiveMessage(String message) throws InterruptedException {
        System.out.println("Message received: " + message);
        Thread.sleep(5000);
        System.out.println("Message processed");
    }
}

步骤5:运行程序

运行发送消息的程序后,您将看到以下输出:

Message sent: Message 1
Message sent: Message 2
Message sent: Message 3
Message sent: Message 4
Message sent: Message 5
Message sent: Message 6
Message sent: Message 7
Message sent: Message 8
Message sent: Message 9
Message sent: Message 10

运行接收消息的程序后,您将看到以下输出:

Message received: Message 1
Message received: Message 2
Message received: Message 3
Message received: Message 4
Message received: Message 5
Message received: Message 6
Message received: Message 7
Message received: Message 8
Message received: Message 9
Message received: Message 10
Message processed
Message processed
Message processed
Message processed
Message processed
Message processed
Message processed
Message processed
Message processed
Message processed

以上就是Spring使用RabbitMQ进行消息传递的完整攻略,包含两个示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:spring 使用RabbitMQ进行消息传递的示例代码 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • RabbitMQ延时队列详解与Java代码实现

    RabbitMQ是一种常用的消息队列中间件,支持多种消息传递模式和协议。在实际应用中,经常需要使用延时队列来处理一些需要延迟执行的任务。本文将详细讲解RabbitMQ延时队列的原理和实现方法,并提供两个Java代码示例。 RabbitMQ延时队列原理 RabbitMQ延时队列的实现原理是将消息发送到一个普通的队列中,但是在消息的属性中设置一个延时时间。然后,…

    RabbitMQ 2023年5月15日
    00
  • 进程间通信之深入消息队列的详解

    以下是“进程间通信之深入消息队列的详解”的完整攻略,包含两个示例。 简介 进程间通信(IPC)是操作系统中的一个重要概念,用于实现不同进程之间的数据交换和协作。消息队列是一种常见的IPC机制,它可以实现进程之间的异步通信,提高系统的并发性和可靠性。本攻略将详细介绍消息队列的概念、特点、使用方法和实现原理,包括创建消息队列、发送和接收消息、消息队列的缺点和优化…

    RabbitMQ 2023年5月15日
    00
  • Asp.net core中RedisMQ的简单应用实现

    下面是Asp.net core中RedisMQ的简单应用实现的完整攻略,包含两个示例说明。 简介 Redis是一个高性能的内存数据库,也可以用作消息队列。在Asp.net core中,我们可以使用StackExchange.Redis库来连接Redis,并使用Redis实现消息队列功能。本文将介绍如何在Asp.net core中使用RedisMQ实现消息队列…

    RabbitMQ 2023年5月16日
    00
  • Python队列RabbitMQ 使用方法实例记录

    Python队列RabbitMQ 使用方法实例记录 RabbitMQ是一个功能强大的消息队列系统,可以用于构建高可用性、高性能的分布式应用程序。在本文中,我们将介绍Python队列RabbitMQ的使用方法,并提供两个示例说明。 环境准备 在开始之前,需要确保已安装了以下环境: Python 3.x pika库 步骤一:连接到RabbitMQ 在本步骤中,我…

    RabbitMQ 2023年5月15日
    00
  • 深入理解Maven的坐标与依赖

    以下是“深入理解Maven的坐标与依赖”的完整攻略,包含两个示例。 简介 在本攻略中,我们将深入理解Maven的坐标与依赖。通过攻略的学习,您将了解Maven坐标的组成、Maven依赖的声明方式以及Maven依赖的传递性。 示例一:Maven坐标的组成 Maven坐标由三个部分组成:groupId、artifactId和version。其中,groupId表…

    RabbitMQ 2023年5月15日
    00
  • 详解docker compose搭建lnmpr环境实现

    以下是详解Docker Compose搭建LNMPR环境实现的完整攻略,包含两个示例。 简介 Docker Compose是一个用于定义和运行多个Docker容器的工具,可以通过一个YAML文件来配置应用程序的服务、网络和卷等。本攻略将详细讲解使用Docker Compose搭建LNMPR环境的过程,并提供两个示例。 示例一:使用Docker Compose…

    RabbitMQ 2023年5月15日
    00
  • SpringBoot整合RabbitMQ实现六种工作模式的示例

    下面是关于SpringBoot整合RabbitMQ实现六种工作模式的示例的完整攻略。 1. 简介 RabbitMQ是一种常用的消息队列中间件,而SpringBoot是一种流行的Java开发框架。本文将介绍如何使用SpringBoot整合RabbitMQ,并实现六种工作模式。 2. 环境准备 在开始之前,需要确保已经安装了以下软件: JDK 1.8或更高版本 …

    RabbitMQ 2023年5月15日
    00
  • JAVA 实现延迟队列的方法

    以下是“JAVA 实现延迟队列的方法”的完整攻略,包含两个示例。 简介 延迟队列是一种特殊的队列,它可以在素被添加到队列中时指定一个延迟时间,当延迟时间到达时,元素会被自动取出。在Java中,有多种方式可以实现延迟队列。本攻略将详细介绍Java中实现延迟队列的方法。 步骤 以下是Java中实现延迟队列的方法: 使用Timer和TimerTask Timer …

    RabbitMQ 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部