SpringBoot整合RabbitMQ快速上手入门

首先我们要知道RabbitMQ中,我们需要发送和接收消息。

而发送者和接收者之间是通过媒介来进行消息的传送和接收。

本文章为RabbitMQ的快速上手简单介绍一下如何在SpringBoot中整合RabbitMQ,我们直接步入正题。

首先我们还是讲一下大致步骤(想不想定义实体类都可以,定义实体类的话,要以json的形式发送)

1.我们需要给application一个配置

        如果你是默认用户的话可以直接引用下面四行

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

2.我们要进行消息的发送和接收,所以自然需要配置我们的发送者和接收者

        (1)发送者

                @Autowired
                private RabbitTemplate rabbitTemplate;
                rabbitTemplate.convertAndSend()来发送信息

        (2)接收者

                可以通过监听器来监听对应的queue,然后进行相关操作
                @RabbitListener(queues = "zmh")
                public void recive(Student student)
               {
                   System.out.println("已接收" + student.getName());
               }

3.我们还需要配置一下我们的bean对象(以后引用queue会用到)

4.Handler实现

这里给大家看一下up的发送者,接收者和Config

发送者

接收者(一定要注意一个地方,这里up返回值为空类型,也就是不返回响应,如果rabbit监听器要返回响应要在发送者中设置一下Replyto)

Config(这是一个最基本的Rabbit搭建,仅仅一个queue,大家可以根据自己情况添加exchange,binding等)

源码:

发送者:

package org.example.spring_boot_rabbitmq_test03.Rabbit;

import org.example.spring_boot_rabbitmq_test03.Entity.Student;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class Provider {
    @Autowired
    private RabbitTemplate rabbitTemplate;

    public void post(Student student)
    {
        rabbitTemplate.convertAndSend("zmh",student);
        System.out.println("已发送");
    }
}

接收者

package org.example.spring_boot_rabbitmq_test03.Rabbit;

import org.example.spring_boot_rabbitmq_test03.Entity.Student;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

@Component
public class Consumer {
    @RabbitListener(queues = "zmh")
    public void recive(Student student)
    {
        System.out.println("已接收" + student.getName());
    }
}

Config

package org.example.spring_boot_rabbitmq_test03.Config;

import org.springframework.amqp.core.Queue;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class Rabbit_Config {
    @Bean
    Queue queue()
    {
        return new Queue("zmh");
    }
    @Bean
    Jackson2JsonMessageConverter jackson2JsonMessageConverter()
    {
        return new Jackson2JsonMessageConverter();
    }
}

实体类

package org.example.spring_boot_rabbitmq_test03.Entity;

import lombok.Data;

import java.io.Serializable;

@Data
public class Student implements Serializable {
    private int id;
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

Handler

package org.example.spring_boot_rabbitmq_test03.Handler;

import org.example.spring_boot_rabbitmq_test03.Entity.Student;
import org.example.spring_boot_rabbitmq_test03.Rabbit.Provider;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/rabbit_zmh")
public class Handler_zmh {
    @Autowired
    Provider provider;

    @RequestMapping("/post")
    public String post(@RequestBody Student student)
    {
        System.out.println("发送中");
        provider.post(student);
        return "发送成功";
    }
}

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值