✨ MQ尝鲜
This commit is contained in:
parent
b8c3eb314e
commit
6c55bdbd70
|
@ -26,9 +26,11 @@
|
||||||
<tag/>
|
<tag/>
|
||||||
<url/>
|
<url/>
|
||||||
</scm>
|
</scm>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<java.version>17</java.version>
|
<java.version>17</java.version>
|
||||||
<spring-modulith.version>1.3.5</spring-modulith.version>
|
<spring-modulith.version>1.3.5</spring-modulith.version>
|
||||||
|
<fastjson2.version>2.0.47</fastjson2.version>
|
||||||
</properties>
|
</properties>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -78,6 +80,13 @@
|
||||||
<artifactId>spring-modulith-starter-test</artifactId>
|
<artifactId>spring-modulith-starter-test</artifactId>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- fastjson2 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba.fastjson2</groupId>
|
||||||
|
<artifactId>fastjson2</artifactId>
|
||||||
|
<version>${fastjson2.version}</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<dependencyManagement>
|
<dependencyManagement>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
|
@ -3,7 +3,7 @@ package cn.bunny.mq.mqdemo.domain;
|
||||||
public class RabbitMQMessageListenerConstants {
|
public class RabbitMQMessageListenerConstants {
|
||||||
|
|
||||||
public static final String EXCHANGE_DIRECT = "exchange.direct.order";
|
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 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;
|
package cn.bunny.mq.mqdemo.mq.listener;
|
||||||
|
|
||||||
|
import com.rabbitmq.client.Channel;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
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 org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import static cn.bunny.mq.mqdemo.domain.RabbitMQMessageListenerConstants.*;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class MessageListenerOrder {
|
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;
|
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.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;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
|
||||||
@SpringBootTest
|
@SpringBootTest
|
||||||
class MqDemoApplicationTests {
|
class MqDemoApplicationTests {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RabbitTemplate rabbitTemplate;
|
||||||
|
|
||||||
|
/* 测试发送消息 */
|
||||||
@Test
|
@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