美文网首页springboot-rabbitmq
springboot-rabbitmq之hello-world(

springboot-rabbitmq之hello-world(

作者: 前进的码农 | 来源:发表于2020-11-08 10:50 被阅读0次

概念介绍

这里引用rabbit官网的一张图


image.png

大概意思就是生产者把消息发送到队列然后消费者消费消息

springboot实现

hello-world比较简单这里直接上代码

生产者

声明默认配置

@Component
@Data
public class MyBean {
    private final AmqpAdmin amqpAdmin;
    private final AmqpTemplate amqpTemplate;
    @Autowired
    public MyBean(AmqpAdmin amqpAdmin, AmqpTemplate amqpTemplate) {
        this.amqpAdmin = amqpAdmin;
        this.amqpTemplate = amqpTemplate;
    }
  //声明一个队列springboot会自动绑定到默认的路由
    @Bean
    Queue queue(){
        return QueueBuilder.durable("hello").build();
    }
}

发送消息

    @Autowired
    MyBean myBean;
  //注意这里默认的routingkey为队列的名称,请和上面声明的队列保持一致
    @Test
    void msgSend(){
        myBean.getAmqpTemplate().convertAndSend("hello","hello-world!");
    }

感觉比不用springboot少了一大堆代码有没有...太简洁了

消费者

消费者就更简单了直接一句话

@Component
@Slf4j
public class ReceiverBean {
    @RabbitListener(queues = "hello")
    public void processMessage(String msg) {
        log.info("msg---"+msg);
    }
}

这里贴springboot手册关于rabbitmq的一段话


image.png

大概意思就是如果没有特殊的配置springboot会启用默认的工厂,接收消息直接用这个就可以了

其他

另外大家是不是发现我没有配置rabbit的用户名密码,如果是本机如果你用的是默认的用户名密码是不需要写的(guest:guest)

最后上代码

消费者/生产者
https://gitee.com/ethanlab/rabbitmq/tree/master/rabbit-helloworld-consumer
https://gitee.com/ethanlab/rabbitmq/tree/master/rabbit-helloworld-producer

相关文章

网友评论

    本文标题:springboot-rabbitmq之hello-world(

    本文链接:https://www.haomeiwen.com/subject/eodfbktx.html