diff --git a/.gitignore b/.gitignore index 757fee3..082df39 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -/.idea \ No newline at end of file +/.idea +target \ No newline at end of file diff --git a/pom.xml b/pom.xml index ce59954..d7caee9 100644 --- a/pom.xml +++ b/pom.xml @@ -29,6 +29,17 @@ org.springframework.boot spring-boot-starter-amqp + + + org.projectlombok + lombok + provided + + + + org.springframework.boot + spring-boot-starter-test + diff --git a/src/main/java/cn/hezhaohui/rabbitmq/Message.java b/src/main/java/cn/hezhaohui/rabbitmq/Message.java new file mode 100644 index 0000000..4d942f5 --- /dev/null +++ b/src/main/java/cn/hezhaohui/rabbitmq/Message.java @@ -0,0 +1,11 @@ +package cn.hezhaohui.rabbitmq; + +import lombok.Data; + +/** + * 消息实体类 + */ +@Data +public class Message { + private String content; +} diff --git a/src/main/java/cn/hezhaohui/rabbitmq/MessageConsumer.java b/src/main/java/cn/hezhaohui/rabbitmq/MessageConsumer.java new file mode 100644 index 0000000..737ef3e --- /dev/null +++ b/src/main/java/cn/hezhaohui/rabbitmq/MessageConsumer.java @@ -0,0 +1,21 @@ +package cn.hezhaohui.rabbitmq; + +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +/** + * 消息消费者 + */ +@Component +public class MessageConsumer { + + // TODO: 实现消息监听方法 + // TODO: 定义队列名称常量 + // TODO: 可能需要添加日志记录 + + @RabbitListener(queues = "test.queue") + public void receiveMessage(Message message) { + // TODO: 实现消息处理逻辑 + } +} diff --git a/src/main/java/cn/hezhaohui/rabbitmq/MessageProducer.java b/src/main/java/cn/hezhaohui/rabbitmq/MessageProducer.java new file mode 100644 index 0000000..a600484 --- /dev/null +++ b/src/main/java/cn/hezhaohui/rabbitmq/MessageProducer.java @@ -0,0 +1,25 @@ +package cn.hezhaohui.rabbitmq; + +import jakarta.annotation.Resource; +import lombok.Data; +import org.springframework.amqp.core.AmqpTemplate; +import org.springframework.stereotype.Component; + +/** + * 消息生产者 + */ +@Component +@Data +public class MessageProducer { + + @Resource + private AmqpTemplate amqpTemplate; + + // TODO: 实现发送消息的方法 + // TODO: 定义队列名称常量 + // TODO: 可能需要添加日志记录 + + public void sendMessage(Message message) { + // TODO: 实现发送逻辑 + } +} diff --git a/src/test/java/cn/hezhaohui/rabbitmq/RabbitMQTest.java b/src/test/java/cn/hezhaohui/rabbitmq/RabbitMQTest.java new file mode 100644 index 0000000..173c492 --- /dev/null +++ b/src/test/java/cn/hezhaohui/rabbitmq/RabbitMQTest.java @@ -0,0 +1,28 @@ +package cn.hezhaohui.rabbitmq; + +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. 验证消息内容是否正确 + } +}