spring boot 整合rabbitmq

本文介绍了如何在Spring Boot项目中整合RabbitMQ,包括配置连接信息、创建交换机和队列,以及使用RabbitTemplate发送和接收消息的基础操作。通过YML或JavaConfig配置连接,接着展示发送消息的实现,并说明如何配置RabbitTemplate。同时,文章还提到了接收消息的方法,以及后续将探讨的RabbitMQ高级特性和原理。

工程引入依赖

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

配置连接,创建交换机,队列

首先配置连接信息,这里可以选用yml的方式或者javaConfig的方式,两者可以自行选择。

yml

spring:
  rabbitmq:
    host:127.0.0.1
    port:5672
    username:wangzhexiao
    password:wangzhexiao
    virtual-host:/ 

JavaConfig

@Bean
public ConnectionFactory connectionFactory() {
    CachingConnectionFactory connectionFactory = new CachingConnectionFactory("localhost",5672);
    //我这里直接在构造方法传入了
    //        connectionFactory.setHost();
    //        connectionFactory.setPort();
    connectionFactory.setUsername("admin");
    connectionFactory.setPassword("admin");
    connectionFactory.setVirtualHost("testhost");
    //是否开启消息确认机制
    //connectionFactory.setPublisherConfirms(true);
    return connectionFactory;
}

配置完连接之后 我们就可以开始发送消息和接收消息了。

spring boot创建交换机 队列 并绑定:

@Bean
public DirectExchange  defaultExchange() {
    return new DirectExchange("directExchange");
}

@Bean
public Queue queue() {
    //名字  是否持久化
    return new Queue("testQueue", true);
}

@Bean
public Binding binding() {
    //绑定一个队列  to: 绑定到哪个交换机上面 with:绑定的路由建(routingKey)
    return BindingBuilder.bind(queue()).to(defaultExchange()).with("direct.key");
}

发送消息:

发送消息比较简单, spring 提供了一个RabbitTemplate 来帮助我们完成发送消息的操作

如果想对于RabbitTemplate 这个类进行一些配置(至于有哪些配置我们后面会讲到) 我们可以在config类中把他作为Bean new出来并配置

@Bean
public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {
    //注意  这个ConnectionFactory 是使用javaconfig方式配置连接的时候才需要传入的  如果是yml配置的连接的话是不需要的
    RabbitTemplate template = new RabbitTemplate(connectionFactory);
    return template;
}

@Component
public class TestSend {

    @Autowired
    RabbitTemplate rabbitTemplate;

    public void testSend() {
        //至于为什么调用这个API 后面会解释
        //参数介绍: 交换机名字,路由建, 消息内容
        rabbitTemplate.convertAndSend("directExchange", "direct.key", "hello");
    }
}

我们只需要写一个类 然后交给spring 管理 在类里面注入RabbitTemplate 就可以直接调用api来发送消息了

接受消息:

这里我新建了一个项目(最好新建一个 当然 不新建也没关系) 来接收信息(之前的配置这里就不贴出来了 和上面基本一样),

@Component
public class TestListener  {

 @RabbitListener(queues = "testQueue")
    public void get(String message) throws Exception{
        System.out.println(message);
    }
}

至此RabbitMQ的一个快速开始以及和spring boot整合就完毕了,后续文章会讲一些RabbitMQ的一些高级特性以及原理等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值