Springboot使用rabbitmq

配置文件

1.打开Rabbitmq的配置类,发现默认配置为本地,所以若你是没有改变,不用配置文件中配置
在这里插入图片描述
在这里插入图片描述

配置开启rabbitmq

在这里插入图片描述

创建队列

1.可以选择配置页面**http://localhost:15672/#/**配置交换器,路由规则,消息队列
2.我这里代码配置了
测试类中

 @Autowired
    AmqpAdmin amqpAdmin;

    @Test
    public void bind() {
        amqpAdmin.declareExchange(new DirectExchange("direct.exchange2"));
        amqpAdmin.declareQueue(new Queue("direct.queue2",true));		//持久化数据到erlang数据库,服务器宕机重启还在
        amqpAdmin.declareBinding(new Binding("direct.queue2", org.springframework.amqp.core.Binding.DestinationType.QUEUE,"direct.exchange2","direct.key2",null));
    }

然后单独运行一次,让rabbitmq先创建这些东西
这段代码意思:声明一个交换器命名direct.exchange2 , 队列direct.queue2,路由规则为direct.key2

创建配置类,消息以JSON形式保存规则

在这里插入图片描述

创建监听器,监听队列

在这里插入图片描述

向队列发送消息

 @Autowired
    RabbitTemplate rabbitTemplate;

    @Autowired
    AmqpAdmin amqpAdmin;

   @Test
    public void bind() {
        amqpAdmin.declareExchange(new DirectExchange("direct.exchange2"));
        amqpAdmin.declareQueue(new Queue("direct.queue2",true));
        amqpAdmin.declareBinding(new Binding("direct.queue2", org.springframework.amqp.core.Binding.DestinationType.QUEUE,"direct.exchange2","direct.key2",null));
    }

    @Test
    public void send() {						//**运行这个测试类**
        for (int i = 0; i < 5; i++) {
            rabbitTemplate.convertAndSend("direct.exchange2","direct.key2",new Person().setName("gqs"+ i));
        }
       }

控制台打出
在这里插入图片描述
ps:

管理界面获取消息

windows配置管理界面

在这里插入图片描述

docker 配置管理界面

docker ps -a
docker exec -it RabbitMQ镜像ID/容器名字 bash
rabbitmq-plugins enable rabbitmq_management

在这里插入图片描述
2.一个消息队列可以放多个类型,但是监听器只能取指定类型,其他类型会报错,但是可以通过Object来取,就可以了
3.rabbitmq发送消息队列测试时,每次监听控制台都会少几条发送数据,原来是发送信息时也加载了spring环境,里面监听器会运行一下,消费了几条消息,解决办法:在测试类发送消息时,把开启rabbitmq注解或者服务一下就可以了

要在Spring Boot中使用RabbitMQ,首先需要添加相应的依赖。在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> ``` 接下来,你需要在application.properties(或application.yml)文件中配置RabbitMQ连接信息,例如: ```properties spring.rabbitmq.host=localhost spring.rabbitmq.port=5672 spring.rabbitmq.username=guest spring.rabbitmq.password=guest ``` 然后,你可以创建一个生产者和一个消费者来发送和接收消息。 对于生产者,你可以使用RabbitTemplate类发送消息。例如,创建一个名为`MessageProducer`的类,并注入`RabbitTemplate`: ```java import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public class MessageProducer { private final RabbitTemplate rabbitTemplate; @Autowired public MessageProducer(RabbitTemplate rabbitTemplate) { this.rabbitTemplate = rabbitTemplate; } public void sendMessage(String message) { rabbitTemplate.convertAndSend("myExchange", "myRoutingKey", message); } } ``` 对于消费者,你可以创建一个消息处理器来处理接收到的消息。例如,创建一个名为`MessageConsumer`的类,并使用`@RabbitListener`注解指定监听的队列: ```java import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; @Component public class MessageConsumer { @RabbitListener(queues = "myQueue") public void handleMessage(String message) { System.out.println("Received message: " + message); // 处理消息 } } ``` 需要注意的是,你还需要在启动类上添加`@EnableRabbit`注解来启用RabbitMQ相关功能。 这是一个简单的使用RabbitMQSpring Boot示例。根据你的需求,你可以进一步配置交换机和队列等属性,以及处理更复杂的消息场景。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值