首页 > 其他分享 >SpringBoot 整合 RabbitMQ

SpringBoot 整合 RabbitMQ

时间:2023-02-17 13:57:50浏览次数:36  
标签:return SpringBoot boot springframework RabbitMQ 整合 org import public

SpringBoot 整合 RabbitMQ

img

生产者

img

application.yml

# 配置 RabbitMQ 的基本信息
spring:
  rabbitmq:
    #    ip
    host: 192.168.36.100
    #    username
    username: ljt
    #    password
    password: ljt
    #    端口
    port: 5672
    virtual-host: /ljt

RabbitMQConfig

package com.www.mq.config;

import org.springframework.amqp.core.*;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author Www
 * @version 1.8
 * @since 2023/2/17  12:55 星期五
 */
@Configuration
public class RabbitMQConfig {
    /**
     * 交换机
     */
    public static final String EXCHANGE_NAME = "boot_topic_exchange";
    
    /**
     * 队列
     */
    public static final String QUEUE_NAME = "boot_queue";
    
    /**
     * 1、创建交换机
     *
     * @return
     */
    @Bean("bootExchange")
    public Exchange bootExchange() {
        return ExchangeBuilder
                .topicExchange(EXCHANGE_NAME)
                .durable(true)
                .build();
    }
    
    /**
     * 2、创建队列
     *
     * @return
     */
    @Bean("bootQueue")
    public Queue bootQueue() {
        return QueueBuilder
                .durable(QUEUE_NAME)
                .build();
    }
    
    /**
     * 队列和交互机绑定关系 Binding
     * <p>
     * 1. 知道哪个队列
     * <p>
     * 2. 知道哪个交换机
     * <p>
     * 3. routing key
     *
     * @param queue
     * @param exchange
     * @return
     */
    @Bean
    public Binding bindQueueExchange(
            @Qualifier("bootQueue") Queue queue,
            @Qualifier("bootExchange") Exchange exchange
    ) {
        return BindingBuilder.bind(queue)
                .to(exchange)
                .with("boot.#")
                .noargs();
    }
    
}


ProducerApplicationTests

package com.www.mq;

import com.www.mq.config.RabbitMQConfig;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import javax.annotation.Resource;

@SpringBootTest
@RunWith(SpringRunner.class)
class ProducerApplicationTests {

	@Resource
	private RabbitTemplate rabbitTemplate;
	
	/**
	 * 发送消息
	 */
	@Test
	void testSend() {
		rabbitTemplate.convertAndSend(
				RabbitMQConfig.EXCHANGE_NAME,
				"boot.wl",
				"boot mq hello ...... mq"
		);
	}

}


消费者

image-20230217133937080

img

application.yml

# 配置 RabbitMQ 的基本信息
spring:
  rabbitmq:
    #    ip
    host: 192.168.36.100
    #    username
    username: ljt
    #    password
    password: ljt
    #    端口
    port: 5672
    virtual-host: /ljt

RabbitMQListener

package com.www.mq.listener;

import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

/**
 * @author Www
 * @version 1.8
 * @since 2023/2/17  13:19 星期五
 */
@Component
public class RabbitMQListener {
    
    /**
     * 监听队列
     *
     * @param message
     */
    @RabbitListener(queues = "boot_queue")
    public void ListenerQueue(Message message) {
        System.out.println("message = " + new String(message.getBody()));
    }
}


启动 springboot 项目测试

img

标签:return,SpringBoot,boot,springframework,RabbitMQ,整合,org,import,public
From: https://www.cnblogs.com/wwwljt/p/17129869.html

相关文章

  • SpringBoot
    SpringBoot2核心技术与响应式编程SpringBoot2核心技术SpringBoot2基础入门Spring能做什么?Spring的生态覆盖了:web开发数据访问安全控制分布式消息服务移动......
  • SpringBoot配置与打包基础
    本篇主要记录SpringBoot使用的基础配置SpringBootMaven配置SpringBootmaven依赖关系我们创建springboot项目后,会发现项目的pom文件都会继承自spring-boot-starter-p......
  • Feign远程调用结合fallback(Springboot包扫描)
    Feign远程调用结合fallback(Springboot包扫描)微服务项目中,各微服务模块间互相调用,通常使用HTTP协议调用,为了优雅和快速调用服务,通常使用HTTP客户端,如Feign为各服务编写......
  • 基于springboot实现SSM整合
    (1)SpringBoot整合Spring(不存在)(2)SpringBoot整合SpringMVC(不存在)(3)SpringBoot整合MyBatis(主要)一、新建springboot项目。  在application.yml配置文件中添加数据源......
  • Spring 整合 RabbitMQ
    Spring整合RabbitMQ创建spring项目引入pompom依赖<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns......
  • springboot整合junit
    packagecom.itheima1;importcom.itheima.Springboot07TestApplication;importcom.itheima.service.BookService;importorg.junit.jupiter.api.Test;importorg.s......
  • RabbitMQ
    RabbitMQMessagingthatjustworks—RabbitMQ案例pom.xml<dependencies><dependency><groupId>com.rabbitmq</group......
  • springboot多环境开发兼容问题(Maven和boot)
    <?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:sch......
  • springboot---多环境启动命令格式
    一、多环境命令启动maven插件中首先clean,再package打包,(修改字符集为UTF-8)使用cmd命令java-jars(Tab键自动补全) -spring.profiles.active=test启动项目  修改端......
  • Springboot项目中注入bean失败的问题排查
    Springboot项目中注入bean失败的问题排查这是一个Spring常见的问题,下面我们从测试方法和普通方法出问题两个角度来下如何解决测试方法先查看目录是否有误测试类的包名......