SpringBoot中怎么發(fā)布和訂閱消息

小億
147
2024-04-09 18:32:40

在SpringBoot中,可以使用Spring的消息隊(duì)列框架來(lái)發(fā)布和訂閱消息。其中,常用的消息隊(duì)列框架包括RabbitMQ、ActiveMQ、Kafka等。下面以RabbitMQ為例介紹如何在SpringBoot中發(fā)布和訂閱消息:

  1. 添加依賴: 首先需要在pom.xml文件中添加RabbitMQ的依賴:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
  1. 配置RabbitMQ: 在application.propertiesapplication.yml中添加RabbitMQ的配置信息:
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
  1. 發(fā)布消息: 創(chuàng)建一個(gè)消息發(fā)送者類,并使用RabbitTemplate來(lái)發(fā)送消息。例如:
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class MessageSender {
    @Autowired
    private AmqpTemplate rabbitTemplate;

    public void sendMessage(String message) {
        rabbitTemplate.convertAndSend("exchange", "routing-key", message);
    }
}
  1. 訂閱消息: 創(chuàng)建一個(gè)消息接收者類,并使用@RabbitListener注解來(lái)接收消息。例如:
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

@Component
public class MessageReceiver {
    @RabbitListener(queues = "queue-name")
    public void receiveMessage(String message) {
        System.out.println("Received message: " + message);
    }
}

通過(guò)以上步驟,就可以在SpringBoot中實(shí)現(xiàn)發(fā)布和訂閱消息了。當(dāng)消息發(fā)送者調(diào)用sendMessage方法時(shí),消息接收者會(huì)收到消息并輸出到控制臺(tái)。

0