SpringBoot快速整合RabbitMq小案例

对于一个直接创建的springBoot项目工程来说,可以按照以下步骤使用rabbitmq

  • 添加依赖:添加rabbitMQ的依赖。
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
  • 配置连接:在配置文件中配置虚拟主机、端口号、用户名、密码等信息。
spring:
  rabbitmq:
    host: localhost
    port: 5672
    virtual-host: {你的虚拟主机}
    username: {你的用户名}
    password: {你的密码}

  • 创建生产者:导入对应依赖后,使用rabbitTemplate,并调用convertAndSend来发送消息。
@Autowired
private RabbitTemplate rabbitTemplate;
public void sendMessage(String message) {
    rabbitTemplate.convertAndSend("exchangeName", "routingKey", message);
}

来发送消息。

  • 创建消费者:使用@RabbitListener注解在消息处理方法上,指定监听的队列名称,并在方法参数中接收消息。
@RabbitListener(queues = "queueName")
public void receiveMessage(String message) {
    // 处理接收到的消息
    System.out.println("Received message: " + message);
}

  • 编写配置类,使用@Bean注解在对应的方法上把方法的返回值(将队列,交换机等信息)交由spring管理。
// 交换机名称
    public static final String ITEM_TOPIC_EXCHANGE = "item_topic_exchange";
    // 队列名称
    public static final String ITEM_QUEUE = "item_queue";
    //声明交换机
    @Bean
    public Exchange exchange(){
        return ExchangeBuilder.topicExchange(ITEM_TOPIC_EXCHANGE).durable(true).build();
    }
    //声明队列
    @Bean
    public Queue queue(){
        return QueueBuilder.durable(ITEM_QUEUE).build();
    }
    //队列绑定到交换机
    @Bean
    public Binding binding(Queue queue,Exchange exchange){
        return BindingBuilder.bind(queue).to(exchange).with("item.#").noargs();
    }
  • 启动应用程序或者写测试类。
    @Autowired
    RabbitTemplate rabbitTemplate;
@Test
    public void testSendMessage(){
        rabbitTemplate.convertAndSend(RabbitmqConfig.ITEM_TOPIC_EXCHANGE, "item.insert", "新增商品的消息~~");
        System.out.println("消息发送成功");
    }

热门相关:恭喜你被逮捕了   豪门重生盛世闲女   梦回大明春   修仙界最后的单纯   豪门重生盛世闲女