欢迎访问宙启技术站
智能推送

如何进行SpringBoot+RabbitMQ方式收发消息

发布时间:2023-05-13 20:33:58

SpringBoot是一个快速构建Java应用程序的框架,它使用了许多先进的技术,构建高效的应用程序。RabbitMQ是一个可靠的和灵活的消息传递中间件,完全支持AMQP(高级消息队列协议)。本文将介绍如何使用SpringBoot RabbitMQ来进行消息的收发。

1、安装RabbitMQ

首先,我们需要安装并启动RabbitMQ。RabbitMQ可以在官方网站下载。在下载完成后,我们需要启动RabbitMQ服务器,默认情况下,RabbitMQ服务器运行在本地的5672端口上。

2、添加SpringBoot依赖

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

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

这个依赖将为我们的应用程序提供有关RabbitMQ的一些基本配置。

3、创建一个队列

为了将消息发送到RabbitMQ,我们需要创建一个队列。

@Bean
public Queue queue() {
    return new Queue("myqueue", true);
}

在上面的代码中,我们创建了一个名为“myqueue”的队列,它是一个持久的队列。

4、创建发送者

为了将消息发送到RabbitMQ,我们需要创建一个名为rabbitMqSender的类。

@Component
public class RabbitMqSender {
    @Autowired
    private RabbitTemplate rabbitTemplate;
     
    @Autowired
    private Queue queue;
     
    public void send(String message) {
        rabbitTemplate.convertAndSend(queue.getName(), message);
    }
}

在上面的代码中,我们注入了RabbitTemplate和队列,并使用convertAndSend()方法将消息发送到队列中。

5、创建接收者

我们需要创建一个名为rabbitMqReceiver的类来接收RabbitMQ的消息。

@Component
public class RabbitMqReceiver {
    @RabbitListener(queues = "myqueue")
    public void receive(String message) {
        System.out.println("Received message: " + message);
    }
}

在上述代码中,我们使用@RabbitListener注释指定要监听的队列,并将接收到的消息打印到控制台上。

6、测试

现在,我们已经设置好了RabbitMQ的发送者和接收者,并创建了队列。我们需要测试它们是否可以正常工作。

@SpringBootTest
class SpringBootRabbitmqApplicationTests {
 
    @Autowired
    private RabbitMqSender sender;
 
    @Autowired
    private RabbitMqReceiver receiver;
 
    @Test
    void test() {
        //发送消息
        sender.send("hello rabbitmq");
        //等待消息接收
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

在上述代码中,我们在测试类中注入了发送者和接收者,并在测试方法中发送了一个简单的消息。我们将等待一秒钟以确保消息被接收并打印。

7、运行

现在,我们已经测试了我们的RabbitMQ集成是否可以正常工作。我们可以运行我们的SpringBoot应用程序并查看输出,以确保消息已成功接收并打印。

在本篇文章中,我们介绍了如何使用SpringBoot RabbitMQ进行消息的收发。我们了解了如何安装并启动RabbitMQ服务器,添加SpringBoot依赖,创建发送者和接收者,并创建一个队列来传递消息。最后,我们测试了我们的应用程序是否正常工作。