SpringBoot MQ 添加 JSON 序列化教程:详细步骤与示例
- 首先需要在 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>
- 在配置文件中添加 MQ 连接信息,如下所示:
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
- 创建一个 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);
}
}
- 创建一个 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();
}
}
}
- 在启动类中进行相关配置,如下所示:
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);
}
}
- 最后,在需要发送消息的地方调用 MessageProducer 的 sendMessage 方法即可将 Java 对象转换成 JSON 字符串并发送到 MQ 中。在需要处理消息的地方监听 MQ 消息即可将 JSON 字符串转换成 Java 对象并进行相关处理。
原文地址: https://www.cveoy.top/t/topic/oH6I 著作权归作者所有。请勿转载和采集!