RabbitMQ 入门篇之——Spring整合rabbitmq

目录

第一步:引入依赖

第二步:编写生产者的配置文件 

第三步:编写消费者的代码

第四步:编写消费者的监听器类

单元测试类

监听器类

第五步:编写消费者的配置文件

测试:

1.简单队列

2.fanout类型

3.direct类型

4.topic类型


 

为了后面讲rabbitmq的一些高级特性,这里讲下spring如何整合rabbitmq 

第一步:引入依赖

spring-context、spring-rabbit以及单元测试的相关依赖 



    
        MyStudy
        org.example
        1.0-SNAPSHOT
    
    4.0.0

    rabbitmq
    
        
            org.springframework
            spring-context
            5.2.9.RELEASE
        
        
        
            org.springframework.amqp
            spring-rabbit
            2.2.11.RELEASE
        

        
            junit
            junit
            4.12
        
        
        
            org.hamcrest
            hamcrest-core
            1.3
        

        
            org.springframework
            spring-test
            5.1.7.RELEASE
        
    

编写rabbitmq的连接属性:

rabbitmq.properties

rabbitmq.host=127.0.0.1
rabbitmq.port=5672
rabbitmq.username=cjian
rabbitmq.password=111111
rabbitmq.virtual-host=vhost_cjian

 

第二步:编写生产者的配置文件 



    
    

    
    
    
    
    
    

    
    
    

    
    
    
    
    
        
            
            
        
    

 
    
    
    
        
            
            
            
            
        

    

    
    
    
    
    
        
            
            
            
            
        
    


第三步:编写消费者的代码

package com.cjian.rabbitmq.spring_rabbit;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

/**
 * @description:
 * @author: cWX969834
 * @time: 2021/1/22 16:36
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring-rabbitmq-producer.xml")
public class Producer {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    @Test
    public void testSpringQueue() {
        rabbitTemplate.convertAndSend("spring_queue", "hello spring rabbitmq");
    }

    @Test
    public void testSpringFanoutQueue() {
        rabbitTemplate.convertAndSend("spring_fanout_exchange","", "hello spring rabbitmq_fanout");
    }

    @Test
    public void testSpringTopicQueue() {
        //1接收
        //rabbitTemplate.convertAndSend("spring_topic_exchange","cjian.name.age","hello spring rabbitmq_topic");
        //1、2接收
        rabbitTemplate.convertAndSend("spring_topic_exchange","cjian.hello","hello spring rabbitmq_topic");
    }
}

RabbitMQ 入门篇之——Spring整合rabbitmq_第1张图片

生产者发送消息简单,主要就是配置文件需要配置

第四步:编写消费者的监听器类

这里简单实现下:除了类名不一样外,其他都大同小异了,就不一一贴了

RabbitMQ 入门篇之——Spring整合rabbitmq_第2张图片

单元测试类

package com.cjian.rabbitmq.spring_rabbit;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

/**
 * @description:
 * @author: CJ
 * @time: 2021/1/25 10:17
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring-rabbitmq-consumer.xml")
public class Consumer {
    @Test
    public void test(){
        while(true){

        }
    }

}

监听器类


package com.cjian.rabbitmq.spring_rabbit;

import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageListener;

/**
 * @description: 需要实现MessageListener接口,并重写onMessage方法
 * @author: CJ
 * @time: 2021/1/25 9:40
 */
public class SpringQueueListener implements MessageListener {
    @Override
    public void onMessage(Message message) {
        System.out.println("简单队列:"new String(message.getBody()));
    }
}

第五步:编写消费者的配置文件



    
    

    
    

    
    
    
    
    
    

    
    
    

    
    
    
    


    
    
        
        

        
        
        
        
        
        
        

        
        
        
    

测试:

1.简单队列

发送消息:

收到消息:

2.fanout类型

收到消息:

3.direct类型

收到消息:

RabbitMQ 入门篇之——Spring整合rabbitmq_第3张图片

4.topic类型

收到消息:

RabbitMQ 入门篇之——Spring整合rabbitmq_第4张图片

 

你可能感兴趣的:(rabbitmq,队列,rabbitmq,spring)