1. 首先需要在 Spring Boot 项目中添加相应的依赖包,如下所示:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
</dependency>
  1. 在配置文件中添加 MQ 连接信息,如下所示:
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
  1. 创建一个 MQ 消息生产者,实现将 Java 对象转换成 JSON 字符串并发送到 MQ 中,如下所示:
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class MessageProducer {

    @Autowired
    private AmqpTemplate amqpTemplate;

    public void sendMessage(Object message) throws Exception {
        ObjectMapper mapper = new ObjectMapper();
        String jsonMessage = mapper.writeValueAsString(message);
        amqpTemplate.convertAndSend(jsonMessage);
    }
}
  1. 创建一个 MQ 消息消费者,实现将 JSON 字符串转换成 Java 对象并处理消息,如下所示:
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageListener;
import org.springframework.stereotype.Component;

@Component
public class MessageConsumer implements MessageListener {

    @Override
    public void onMessage(Message message) {
        try {
            ObjectMapper mapper = new ObjectMapper();
            Object obj = mapper.readValue(message.getBody(), Object.class);
            // 处理消息
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  1. 在启动类中进行相关配置,如下所示:
import org.springframework.amqp.rabbit.annotation.EnableRabbit;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@EnableRabbit
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
  1. 最后,在需要发送消息的地方调用 MessageProducer 的 sendMessage 方法即可将 Java 对象转换成 JSON 字符串并发送到 MQ 中。在需要处理消息的地方监听 MQ 消息即可将 JSON 字符串转换成 Java 对象并进行相关处理。
SpringBoot MQ 添加 JSON 序列化教程:详细步骤与示例

原文地址: https://www.cveoy.top/t/topic/oH6I 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录