✨Feat: 实现消息发送与接收

This commit is contained in:
2025-10-15 14:47:43 +08:00
parent 5773645739
commit b905844154
4 changed files with 34 additions and 41 deletions
@@ -1,21 +1,29 @@
package cn.hezhaohui.rabbitmq.amqp; package cn.hezhaohui.rabbitmq.amqp;
import org.springframework.amqp.core.Message; import cn.hezhaohui.rabbitmq.entity.Message;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.Arrays;
import static cn.hezhaohui.rabbitmq.constant.RabbitmqConstant.QUEUE_EMAIL_NAME;
import static cn.hezhaohui.rabbitmq.constant.RabbitmqConstant.QUEUE_SMS_NAME;
/** /**
* 消息消费者 * 消息消费者
*/ */
@Component @Component
@Slf4j
public class MessageConsumer { public class MessageConsumer {
// TODO: 实现消息监听方法 @RabbitListener(queues = QUEUE_EMAIL_NAME)
// TODO: 定义队列名称常量 public void receiveEmailMessage(Message message) {
// TODO: 可能需要添加日志记录 log.info("receiveEmailMessage: {}", message.getContent());
}
// @RabbitListener(queues = "test.queue")
// public void receiveMessage(Message message) { @RabbitListener(queues = QUEUE_SMS_NAME)
// // TODO: 实现消息处理逻辑 public void receiveSmsMessage(Message message) {
// } log.info("receiveSmsMessage: {}", message.getContent());
}
} }
@@ -1,11 +1,17 @@
package cn.hezhaohui.rabbitmq.entity; package cn.hezhaohui.rabbitmq.entity;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
/** /**
* 消息实体类 * 消息实体类
*/ */
@Data @Data
@JsonIgnoreProperties(ignoreUnknown = true)
@AllArgsConstructor
@NoArgsConstructor
public class Message { public class Message {
final private String content; private String content;
} }
@@ -1,29 +0,0 @@
package cn.hezhaohui.rabbitmq;
import cn.hezhaohui.rabbitmq.amqp.MessageProducer;
import jakarta.annotation.Resource;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
public class RabbitMQTest {
@Resource
private MessageProducer messageProducer;
@Test
public void testSendMessage() {
// TODO: 实现生产者发送消息的测试
// 1. 创建测试消息对象
// 2. 调用messageProducer.sendMessage()方法
// 3. 验证消息是否成功发送
}
@Test
public void testReceiveMessage() {
// TODO: 实现消费者接收消息的测试
// 1. 发送测试消息到队列
// 2. 等待消息被消费
// 3. 验证消息内容是否正确
}
}
@@ -12,13 +12,21 @@ class MessageProducerTest {
@Resource @Resource
private MessageProducer messageProducer; private MessageProducer messageProducer;
/**
* 测试方法:用于发送电子邮件消息
* 该方法使用messageProducer对象调用sendEmailMessage方法
* 传入一个Message对象,其中包含电子邮件地址"hello@example.com"
*/
@Test @Test
void sendEmailMessage() { void sendEmailMessage() throws InterruptedException { // 测试用例:验证电子邮件消息发送功能
messageProducer.sendEmailMessage(new Message("hello@example.com")); messageProducer.sendEmailMessage(new Message("hello@example.com")); // 创建并发送电子邮件消息
Thread.sleep(1000);
} }
@Test @Test
void sendSmsMessage() { void sendSmsMessage() throws InterruptedException {
messageProducer.sendSmsMessage(new Message("1234567890")); messageProducer.sendSmsMessage(new Message("1234567890"));
Thread.sleep(1000);
} }
} }