农妇山泉一亩田 发表于 2023-6-15 22:46:39

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("消息发送成功");
    }
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: SpringBoot快速整合RabbitMq小案例