Spring Boot实现消息的发送和接收使用实战指南

 更新时间:2023年06月25日 10:01:52   作者:刘凤贵  
这篇文章主要为大家介绍了Spring Boot实现消息的发送和接收使用实战指南,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

正文

当涉及到消息发送和接收的场景时,可以使用Spring Boot和消息中间件RabbitMQ来实现。下面是一个简单的示例代码,展示了如何在Spring Boot应用程序中创建消息发送者和接收者,并发送和接收一条消息

准备工作

首先,你需要进行以下准备工作

  • 确保你已经安装了Java和Maven,并设置好相应的环境变量。
  • 选择一个消息中间件作为你的消息代理,并确保已经安装和配置好该消息中间件。
  • 创建一个新的Spring Boot项目,并添加相应的依赖项。

编写代码

现在,让我们来编写代码

  • 创建一个名为MessageSender的类,用于发送消息。
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class MessageSender {
    @Autowired
    private RabbitTemplate rabbitTemplate;
    public void sendMessage(String message) {
        rabbitTemplate.convertAndSend("queue_email", message);
        System.out.println("Message sent: " + message);
    }
}
  • 创建一个名为MessageReceiver的类,用于接收消息。
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
@Component
public class MessageReceiver {
    @RabbitListener(queues = "queue_email")
    public void receiveMessage(String message) {
        System.out.println("Message received: " + message);
    }
}
  • 创建一个名为Application的类,作为启动类。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
  • 创建一个名为application.properties的配置文件,并添加以下配置:
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

以上代码示例中使用了RabbitMQ作为消息中间件,你可以根据自己的需求选择其他消息中间件,并相应地更改配置。

配置指定的队列

import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class RabbitMQConfig {
 @Bean
 public Queue queue() {
     return new Queue("queue_email");
 }
}

现在你可以在应用程序的其他地方使用MessageSender类发送消息,例如在某个控制器中:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MessageController {
    @Autowired
    private MessageSender messageSender;
    @GetMapping("/send-message")
    public String sendMessage() {
        messageSender.sendMessage("Hello, World!");
        return "Message sent";
    }
}

当你运行这个Spring Boot应用程序时,可以通过访问/send-message端点来发送一条消息。这条消息将被发送到名为queue_email的队列中,并由MessageReceiver类中的receiveMessage方法接收和处理。

这是一个简单的示例,用于演示如何在Spring Boot应用程序中发送和接收消息。可以根据实际需求进行修改和扩展,添加更多的功能和业务逻辑。

相关文章

  • MyBatis和Hibernate的使用及区别

    MyBatis和Hibernate的使用及区别

    Hibernate和MyBatis都是主流的ORM框架,各有特点,Hibernate使用HQL,适合需求明确的大型项目;MyBatis需要手动编写SQL,适合需求多变的互联网项目
    2026-01-01
  • SpringBoot如何实现缓存预热

    SpringBoot如何实现缓存预热

    缓存预热是指在 Spring Boot 项目启动时,预先将数据加载到缓存系统(如 Redis)中的一种机制,本文主要介绍了SpringBoot如何实现缓存预热,感兴趣的可以了解下
    2024-12-12
  • Spring boot 项目中如何进行kafka Stream app 开发

    Spring boot 项目中如何进行kafka Stream app 

    文章介绍了Kafka Streams的配置要点与核心方法,强调应用ID唯一性、正确设置Bootstrap服务器,区分KStream与Java Stream的不可变性和多消费特性,本文给大家介绍Springboot项目中如何进行kafka Stream app开发,感兴趣的朋友一起看看吧
    2025-09-09
  • java Date获取本月的开始时间与结束时间

    java Date获取本月的开始时间与结束时间

    这篇文章主要为大家介绍了java Date获取本月的开始时间与结束时间示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2023-05-05
  • java实现开根号的运算方式

    java实现开根号的运算方式

    这篇文章主要介绍了java实现开根号的运算方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Spring Boot循环依赖的症状和解决方案

    Spring Boot循环依赖的症状和解决方案

    循环依赖是指在Spring Boot 应用程序中,两个或多个类之间存在彼此依赖的情况,形成一个循环依赖链。这篇文章主要介绍了SpringBoot循环依赖的症状和解决方法
    2023-04-04
  • Java中ScopeValue的使用小结

    Java中ScopeValue的使用小结

    Java21引入的ScopedValue是一种作用域内共享不可变数据的预览API,本文就来详细介绍一下Java中ScopeValue的使用小结,感兴趣的可以了解一下
    2025-12-12
  • java二叉树的遍历方式详解

    java二叉树的遍历方式详解

    这篇文章主要为大家详细介绍了java实现二叉树遍历的四种方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能给你带来帮助
    2021-08-08
  • openEuler 搭建java开发环境的详细过程

    openEuler 搭建java开发环境的详细过程

    这篇文章主要介绍了openEuler 搭建java开发环境,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • IDEA引MAVEN项目jar包依赖导入问题解决方法

    IDEA引MAVEN项目jar包依赖导入问题解决方法

    这篇文章主要介绍了IDEA引MAVEN项目jar包依赖导入问题解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11

最新评论