package com.hanserwei.chat.consumer; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; import java.nio.charset.StandardCharsets; @Slf4j @Component public class RabbitMQConsumer { @RabbitListener(queues = "chat.queue") public void receiveMessage(Object message) { String messageText = extractMessage(message); log.info("Received message text:\n{}", messageText); } private String extractMessage(Object message) { return switch (message) { case null -> ""; case String str -> str; case byte[] body -> new String(body, StandardCharsets.UTF_8); case Message amqpMessage -> new String(amqpMessage.getBody(), StandardCharsets.UTF_8); default -> String.valueOf(message); }; } }