✨ MQ尝鲜
This commit is contained in:
parent
b8c3eb314e
commit
6c55bdbd70
|
@ -26,9 +26,11 @@
|
|||
<tag/>
|
||||
<url/>
|
||||
</scm>
|
||||
|
||||
<properties>
|
||||
<java.version>17</java.version>
|
||||
<spring-modulith.version>1.3.5</spring-modulith.version>
|
||||
<fastjson2.version>2.0.47</fastjson2.version>
|
||||
</properties>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
|
@ -78,6 +80,13 @@
|
|||
<artifactId>spring-modulith-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- fastjson2 -->
|
||||
<dependency>
|
||||
<groupId>com.alibaba.fastjson2</groupId>
|
||||
<artifactId>fastjson2</artifactId>
|
||||
<version>${fastjson2.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
|
|
|
@ -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";
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue