Springboot中使用Rabbitmq的代码

使用之前先确认已安装rabbitmq

首先,在pom.xml中添加依赖

 <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-amqp</artifactId>
 </dependency>

在application.yml中添加配置代码

spring:
  rabbitmq:
    listener:
      simple:
        acknowledge-mode: manual
    username: guest
    password: guest
    host: localhost
    port: 5672
    virtual-host: /

添加配置类,加上@Configuration和@Bean注解后会自动生成一个队列

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

/**
 * RabbitMq队列配置
 */
@Configuration
public class RabbitConfig {
    public static final String COIN_QUEUE ="COIN" ;

    @Bean
    public Queue getCoinQueue(){
        return new Queue(COIN_QUEUE,true);
    }
}

在要使用的类中添加import


import org.springframework.amqp.rabbit.core.RabbitTemplate;

然后注入模板


    @Autowired
    private RabbitTemplate rabbitTemplate;

之后就可以加入队列了,第一个参数是队列名,第二个参数是内容,可以是任意类型,也可以是对象

this.rabbitTemplate.convertAndSend(RabbitConfig.COIN_QUEUE, "test");//加入队列

最后是消费者代码,


import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
@Component
public class Consumer {

    /**
     * 处理COIN的队列请求
     */
    @RabbitListener(queues = {RabbitConfig.COIN_QUEUE})
    public void handleCoinQueue(CoinConsumerEntity consumerEntity, Message message, Channel channel) {
        final long deliveryTag = message.getMessageProperties().getDeliveryTag();
        try {
           //在这里可以对接收的数据进行处理,包括持久化等操作
            channel.basicAck(deliveryTag, false);
        } catch (IOException e) {
            try {
                channel.basicRecover();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
        }
    }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值