Skip to content

Commit 56fa086

Browse files
committed
挪动监听器注解的位置来解决消息监听循环报错问题
1 parent 67b9f1b commit 56fa086

File tree

9 files changed

+37
-44
lines changed

9 files changed

+37
-44
lines changed

Spring-Boot-RabbitMQ/src/main/java/com/example/rabbitmq/controller/TestController.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public List<Student> directDelayMQ() {
102102
message.getMessageProperties().setExpiration("15000");
103103
return message;
104104
});
105-
System.out.println(now.format(dateTimeFormatter)+ " 消息发送:"+student.toString());
105+
System.out.println(now.format(dateTimeFormatter) + " 消息发送:" + student.toString());
106106
}
107107
return students;
108108
}

Spring-Boot-RabbitMQ/src/main/java/com/example/rabbitmq/listener/MyAckListener.java

+7-8
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,13 @@
1111
import java.util.Map;
1212

1313
@Component
14-
@RabbitListener(
15-
containerFactory = "myListenerFactory",
16-
bindings = @QueueBinding(
17-
value = @Queue("myManualAckQueue"),
18-
exchange = @Exchange(value = "myManualAckExchange", type = ExchangeTypes.DIRECT),
19-
key = "mine.manual"))
2014
public class MyAckListener {
21-
@RabbitHandler
15+
@RabbitListener(
16+
containerFactory = "myListenerFactory",
17+
bindings = @QueueBinding(
18+
value = @Queue("myManualAckQueue"),
19+
exchange = @Exchange(value = "myManualAckExchange", type = ExchangeTypes.DIRECT),
20+
key = "mine.manual"))
2221
public void onMessage(@Payload String msg, @Headers Map<String, Object> headers, Channel channel) throws Exception {
2322
try {
2423
System.out.println("来自 myManualAckQueue 的消息:" + msg);
@@ -34,4 +33,4 @@ public void onMessage(@Payload String msg, @Headers Map<String, Object> headers,
3433
// channel.basicReject();
3534
}
3635
}
37-
}
36+
}

Spring-Boot-RabbitMQ/src/main/java/com/example/rabbitmq/listener/MyDeadLetterListener.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
@Component
1414
public class MyDeadLetterListener {
15-
1615
@RabbitListener(
1716
containerFactory = "jsonListenerFactory",
1817
bindings = {@QueueBinding(
@@ -25,4 +24,4 @@ public void getDLMessage(Student user) {
2524
// 模拟执行任务
2625
System.out.println(now.format(dateTimeFormatter) +" 延迟队列之消费消息:" + user.toString() );
2726
}
28-
}
27+
}
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
package com.example.rabbitmq.listener;
22

33
import org.springframework.amqp.rabbit.annotation.Queue;
4-
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
54
import org.springframework.amqp.rabbit.annotation.RabbitListener;
65
import org.springframework.stereotype.Component;
76

87
@Component
9-
@RabbitListener(queuesToDeclare = @Queue("myDefaultExchange"))
108
public class MyDefaultListener {
119

12-
@RabbitHandler
10+
@RabbitListener(queuesToDeclare = @Queue("myDefaultExchange"))
1311
public void onMessage(String msg) {
1412
System.out.println("来自 myDefaultExchange 的消息:" + msg);
1513
}
16-
}
14+
}

Spring-Boot-RabbitMQ/src/main/java/com/example/rabbitmq/listener/MyDirectListener.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,20 @@
66
import org.springframework.stereotype.Component;
77

88
@Component
9-
@RabbitListener(
10-
bindings = @QueueBinding(
11-
value = @Queue("myDirectQueue"),
12-
exchange = @Exchange(value = "myDirectExchange", type = ExchangeTypes.DIRECT),
13-
key = "mine.direct"))
149
public class MyDirectListener {
1510

1611
/**
1712
* listenerAdapter
1813
*
1914
* @param msg 消息内容,当只有一个参数的时候可以不加@Payload注解
2015
*/
21-
@RabbitHandler
16+
@RabbitListener(
17+
bindings = @QueueBinding(
18+
value = @Queue("myDirectQueue"),
19+
exchange = @Exchange(value = "myDirectExchange", type = ExchangeTypes.DIRECT),
20+
key = "mine.direct")
21+
)
2222
public void onMessage(@Payload String msg) {
2323
System.out.println("来自 myDirectExchange 的消息:" + msg);
2424
}
25-
}
25+
}

Spring-Boot-RabbitMQ/src/main/java/com/example/rabbitmq/listener/MyFanoutListener.java

+13-15
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,22 @@
1010
import java.util.Map;
1111

1212
@Component
13-
@RabbitListeners({
14-
@RabbitListener(
15-
bindings = @QueueBinding(
16-
value = @Queue("myFanoutQueue-one"),
17-
exchange = @Exchange(value = "myFanoutExchange", type = ExchangeTypes.FANOUT),
18-
key = "key.one")),
19-
20-
@RabbitListener(
21-
bindings = @QueueBinding(
22-
value = @Queue("myFanoutQueue-two"),
23-
exchange = @Exchange(value = "myFanoutExchange", type = ExchangeTypes.FANOUT),
24-
key = "key.two")),
25-
})
2613
public class MyFanoutListener {
14+
@RabbitListeners({
15+
@RabbitListener(
16+
bindings = @QueueBinding(
17+
value = @Queue("myFanoutQueue-one"),
18+
exchange = @Exchange(value = "myFanoutExchange", type = ExchangeTypes.FANOUT),
19+
key = "key.one")),
2720

28-
@RabbitHandler
21+
@RabbitListener(
22+
bindings = @QueueBinding(
23+
value = @Queue("myFanoutQueue-two"),
24+
exchange = @Exchange(value = "myFanoutExchange", type = ExchangeTypes.FANOUT),
25+
key = "key.two")),
26+
})
2927
public void onMessage(@Payload String msg, @Headers Map<String, Object> headers) {
3028
System.out.println("来自 " + headers.get(AmqpHeaders.CONSUMER_QUEUE) + " 的消息:" + msg);
3129
}
3230

33-
}
31+
}

Spring-Boot-RabbitMQ/src/main/java/com/example/rabbitmq/listener/MyHeadListener.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ public void anyMatchOnMessage(String msg) {
2424
System.out.println("来自 headQueue-one 的消息:" + msg);
2525
}
2626

27-
2827
/**
2928
* 全匹配
3029
*
@@ -41,4 +40,4 @@ public void allMatchOnMessage(String msg) {
4140
System.out.println("来自 headQueue-two 的消息:" + msg);
4241
}
4342

44-
}
43+
}

Spring-Boot-RabbitMQ/src/main/java/com/example/rabbitmq/listener/MyJasonListener.java

+2-4
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,14 @@
22

33
import com.example.rabbitmq.domain.Student;
44
import org.springframework.amqp.rabbit.annotation.Queue;
5-
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
65
import org.springframework.amqp.rabbit.annotation.RabbitListener;
76
import org.springframework.messaging.handler.annotation.Payload;
87
import org.springframework.stereotype.Component;
98

109
@Component
11-
@RabbitListener(containerFactory = "jsonListenerFactory",queuesToDeclare = @Queue("jsonQueue"))
1210
public class MyJasonListener {
13-
@RabbitHandler
11+
@RabbitListener(containerFactory = "jsonListenerFactory",queuesToDeclare = @Queue("jsonQueue"))
1412
public void onMessage(@Payload Student student) {
1513
System.out.println(student);
1614
}
17-
}
15+
}

Spring-Boot-RabbitMQ/src/main/java/com/example/rabbitmq/listener/MyPluginListener.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import java.time.LocalDateTime;
99
import java.time.format.DateTimeFormatter;
1010

11+
import static java.time.LocalDateTime.*;
12+
1113
/**
1214
* Created by dengzhiming on 2019/12/30
1315
*/
@@ -23,7 +25,7 @@ public class MyPluginListener {
2325
arguments = {@Argument(name="x-delayed-type",value = ExchangeTypes.DIRECT)}),
2426
key = {"mine.plugin.key"})})
2527
public void getPDLMessage(Student user) {
26-
LocalDateTime now = LocalDateTime.now();
28+
LocalDateTime now = now();
2729
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
2830
// 模拟执行任务
2931
System.out.println(now.format(dateTimeFormatter) +" 延迟队列之消费消息:" + user.toString() );

0 commit comments

Comments
 (0)