rabbitMQ和springboot整合入门实例

Springbbot集成RabbitMQ

1:依赖

<!--springboot整合rabbitMQ-->
<dependency>
    <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

2:配置信息

#rabbitMQ服务访问配置
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.username=root
spring.rabbitmq.password=password
QUEUE_NAME=test

扫描二维码关注公众号,回复: 472017 查看本文章

3:注入队列

@Configuration
public class RabbitConfig {

    /**
     * 队列名称
     */
    
@Value( "${QUEUE_NAME}" )
    private String QUEUE_NAME;


    /**
     * 队列
     *
@return
     
*/
    
@Bean
    public Queue Queue() {
        return new Queue(QUEUE_NAME);
    }

4:创建消息生产者


/**
 * 队列名称
 * 这里的队列名称要和config注入的队列名称一样
 */
@Value( "${QUEUE_NAME}" )
private String QUEUE_NAME;


/**
 * 生产消息
 *
@throws Exception
 */
public void send() throws Exception{
    String context = "开始生产消息 " + new Date();
    this.rabbitTemplate.convertAndSend(context);
}

5:创建消费者

@RabbitListener 和 @RabbitHandler结合使用,不同类型的消息使用不同的方法来处理。

 */
@Component
@RabbitListener(queues = "test")//注明需要消费的队列名称,用于监听这个队列
public class ReceiverTest {


    /**
     * 消息消费
     *
@param hello
     *
     *
     *
@RabbitListener @RabbitHandler可以结合使用,
     * 不同类型的消息使用不同的方法来处理。
     */
    
@RabbitHandler//用于处理消息
    public void process(String hello) {
        System.out.println("消费消息  : " + hello);
    }
}

@RabbitListener 和 @RabbitHandler可以分别用在方法上面 效果是一样

 

 

 

 

 

 

 

 

 

 

 

6:最后在启动类上加上扫描注解

@EnableRabbit

 

7:测试

@RestController
@RequestMapping(value = "rabbit")
public class TestDemo {

    @Autowired
    private SentTest sentTest;


    @GetMapping(value = "/test")
    @ResponseBody
    public String find() throws Exception{
        for(int i = 0;i<=10;++i) {
            sentTest.send(i);
        }
        return "ok";
    }

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/weixin_41404773/article/details/80236025