SpringBoot集成RabbitMQ

本文详细介绍了如何在SpringBoot项目中集成RabbitMQ,包括添加依赖、配置参数、创建生产者与消费者,以及配置队列的过程。通过具体代码示例,展示了消息发送与接收的异步操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringBoot集成RabbitMQ


RabbitMQ的介绍参考上一篇文章,不在介绍,直接搞!

  1. 创建Spring Boot应用rabbitmq-demo

  2. pom.xml添加依赖

 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
<dependencies>
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

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

3.在application.properties文件中添加如下内容

spring.application.name=rabbitmq-demo

spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
srping.rabbitmq.password=guest
  1. 创建消息生产者
import org.springframework.amqp.core.AmqpTemplate
@Component
public class Sender {
    // 定义了一套针对AMQP协议的基础操作
    @Autowired
    private AmqpTemplate rabbitTemplate;

    public void send(){
        String context = "hello " + new Date();
        System.out.println("Sender: " + context);
        // 产生一个字符串,并发送到名为hello的队列中
        this.rabbitTemplate.convertAndSend("hello", context);
    }
}
  1. 创建消息消费者,实现对消息队列的消费
@Component
// 定义对hello队列的监听
@RabbitListener(queues="hello")
public class Receiver {
    // 指定对消息的处理方法
    @RabbitHandler
    public void precess(String hello){
        System.out.println("Receiver: " + hello);
    }
}

6.创建配置类,用来配置队列、交换器、路由等高级信息。此处仅简单实现队列配置,完成一个基本的生产消费过程

@Configuration
public class RabbitConfig {
    @Bean
    public Queue helloQueue(){
        return new Queue("hello");
    }
}
  1. 主类
@SpringBootApplication
public class RabbitMQApplication {
    public static void main(String[] args) {
        SpringApplication.run(RabbitMQApplication.class, args);
    }
}
  1. 单元测试类
@RunWith(SpringRunner.class)
@SpringBootTest(classes = RabbitMQApplication.class)
public class RabbitMQApplicationTest {

    @Autowired
    private Sender sender;

    @Test
    public void hello(){
        sender.send();
    }
}
  1. 启动应用主类,查看控制台
    在这里插入图片描述
    在这里插入图片描述
  2. 运行单元测试类,可以在其控制台看到Sender的信息,在主类的控制台,可以看到Receiver的信息。

以上便是生产者(消息发送)与消费者(消息接收)的示例,在整个生产消费过程中,生产与消费是一个异步操作,这也是在分布式系统中要使用消息代理的重要原因。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值