From 6c55bdbd709f99cdb95d9519936705ac2a97e914 Mon Sep 17 00:00:00 2001
From: bunny <1319900154@qq.com>
Date: Sun, 18 May 2025 22:42:52 +0800
Subject: [PATCH] =?UTF-8?q?:sparkles:=20MQ=E5=B0=9D=E9=B2=9C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
mq-demo/pom.xml | 9 +++++++++
.../RabbitMQMessageListenerConstants.java | 2 +-
.../bunny/mq/mqdemo/domain/entity/Bunny.java | 18 ++++++++++++++++++
.../mq/listener/MessageListenerOrder.java | 18 ++++++++++++++++++
.../mq/mqdemo/MqDemoApplicationTests.java | 17 ++++++++++++++++-
5 files changed, 62 insertions(+), 2 deletions(-)
create mode 100644 mq-demo/src/main/java/cn/bunny/mq/mqdemo/domain/entity/Bunny.java
diff --git a/mq-demo/pom.xml b/mq-demo/pom.xml
index 0195f24..7b891be 100644
--- a/mq-demo/pom.xml
+++ b/mq-demo/pom.xml
@@ -26,9 +26,11 @@
+
17
1.3.5
+ 2.0.47
@@ -78,6 +80,13 @@
spring-modulith-starter-test
test
+
+
+
+ com.alibaba.fastjson2
+ fastjson2
+ ${fastjson2.version}
+
diff --git a/mq-demo/src/main/java/cn/bunny/mq/mqdemo/domain/RabbitMQMessageListenerConstants.java b/mq-demo/src/main/java/cn/bunny/mq/mqdemo/domain/RabbitMQMessageListenerConstants.java
index a4f9386..e88e845 100644
--- a/mq-demo/src/main/java/cn/bunny/mq/mqdemo/domain/RabbitMQMessageListenerConstants.java
+++ b/mq-demo/src/main/java/cn/bunny/mq/mqdemo/domain/RabbitMQMessageListenerConstants.java
@@ -3,7 +3,7 @@ package cn.bunny.mq.mqdemo.domain;
public class RabbitMQMessageListenerConstants {
public static final String EXCHANGE_DIRECT = "exchange.direct.order";
- public static final String ROUTING_KEY_DIRECT = "order";
public static final String QUEUE_NAME = "queue.order";
+ public static final String ROUTING_KEY_DIRECT = "order";
}
diff --git a/mq-demo/src/main/java/cn/bunny/mq/mqdemo/domain/entity/Bunny.java b/mq-demo/src/main/java/cn/bunny/mq/mqdemo/domain/entity/Bunny.java
new file mode 100644
index 0000000..8b4ce21
--- /dev/null
+++ b/mq-demo/src/main/java/cn/bunny/mq/mqdemo/domain/entity/Bunny.java
@@ -0,0 +1,18 @@
+package cn.bunny.mq.mqdemo.domain.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+public class Bunny {
+
+ private String rabbitName;
+
+ private int age;
+
+}
diff --git a/mq-demo/src/main/java/cn/bunny/mq/mqdemo/mq/listener/MessageListenerOrder.java b/mq-demo/src/main/java/cn/bunny/mq/mqdemo/mq/listener/MessageListenerOrder.java
index d45311e..130e805 100644
--- a/mq-demo/src/main/java/cn/bunny/mq/mqdemo/mq/listener/MessageListenerOrder.java
+++ b/mq-demo/src/main/java/cn/bunny/mq/mqdemo/mq/listener/MessageListenerOrder.java
@@ -1,10 +1,28 @@
package cn.bunny.mq.mqdemo.mq.listener;
+import com.rabbitmq.client.Channel;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.core.Message;
+import org.springframework.amqp.rabbit.annotation.Exchange;
+import org.springframework.amqp.rabbit.annotation.Queue;
+import org.springframework.amqp.rabbit.annotation.QueueBinding;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
+import static cn.bunny.mq.mqdemo.domain.RabbitMQMessageListenerConstants.*;
+
@Component
@Slf4j
public class MessageListenerOrder {
+ @RabbitListener(bindings = @QueueBinding(
+ exchange = @Exchange(value = EXCHANGE_DIRECT),
+ value = @Queue(value = QUEUE_NAME, durable = "true"),
+ key = ROUTING_KEY_DIRECT
+ )
+ )
+ public void processMessage(String dataString, Message message, Channel channel) {
+ System.out.println("消费端接受消息:" + dataString);
+ }
+
}
diff --git a/mq-demo/src/test/java/cn/bunny/mq/mqdemo/MqDemoApplicationTests.java b/mq-demo/src/test/java/cn/bunny/mq/mqdemo/MqDemoApplicationTests.java
index 238c960..2ddee5c 100644
--- a/mq-demo/src/test/java/cn/bunny/mq/mqdemo/MqDemoApplicationTests.java
+++ b/mq-demo/src/test/java/cn/bunny/mq/mqdemo/MqDemoApplicationTests.java
@@ -1,13 +1,28 @@
package cn.bunny.mq.mqdemo;
+import cn.bunny.mq.mqdemo.domain.RabbitMQMessageListenerConstants;
+import cn.bunny.mq.mqdemo.domain.entity.Bunny;
+import com.alibaba.fastjson2.JSON;
import org.junit.jupiter.api.Test;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class MqDemoApplicationTests {
+ @Autowired
+ private RabbitTemplate rabbitTemplate;
+
+ /* 测试发送消息 */
@Test
- void contextLoads() {
+ void publishTest() {
+ String exchangeDirect = RabbitMQMessageListenerConstants.EXCHANGE_DIRECT;
+ String routingKeyDirect = RabbitMQMessageListenerConstants.ROUTING_KEY_DIRECT;
+ rabbitTemplate.convertAndSend(exchangeDirect, routingKeyDirect, "你好小球球~~~");
+
+ Bunny bunny = Bunny.builder().rabbitName("Bunny").age(2).build();
+ rabbitTemplate.convertAndSend(exchangeDirect, routingKeyDirect, JSON.toJSONString(bunny));
}
}