From 4d65ae59fd7b1814462adf4bdb38a7a37e982250 Mon Sep 17 00:00:00 2001 From: "Yangkai.Shen" <237497819@qq.com> Date: Mon, 31 Dec 2018 22:16:42 +0800 Subject: [PATCH] =?UTF-8?q?:construction:=20spring-boot-demo-mq-rabbitmq?= =?UTF-8?q?=20=E5=8A=AA=E5=8A=9Bing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mq/rabbitmq/config/RabbitMqConfig.java | 59 +++++++++++++++++++ .../mq/rabbitmq/constants/RabbitConsts.java | 36 +++++++++++ .../mq/rabbitmq/message/MessageStruct.java | 25 ++++++++ .../src/main/resources/application.properties | 0 .../src/main/resources/application.yml | 17 ++++++ 5 files changed, 137 insertions(+) create mode 100644 spring-boot-demo-mq-rabbitmq/src/main/java/com/xkcoding/mq/rabbitmq/config/RabbitMqConfig.java create mode 100644 spring-boot-demo-mq-rabbitmq/src/main/java/com/xkcoding/mq/rabbitmq/constants/RabbitConsts.java create mode 100644 spring-boot-demo-mq-rabbitmq/src/main/java/com/xkcoding/mq/rabbitmq/message/MessageStruct.java delete mode 100644 spring-boot-demo-mq-rabbitmq/src/main/resources/application.properties create mode 100644 spring-boot-demo-mq-rabbitmq/src/main/resources/application.yml diff --git a/spring-boot-demo-mq-rabbitmq/src/main/java/com/xkcoding/mq/rabbitmq/config/RabbitMqConfig.java b/spring-boot-demo-mq-rabbitmq/src/main/java/com/xkcoding/mq/rabbitmq/config/RabbitMqConfig.java new file mode 100644 index 0000000..5bb7761 --- /dev/null +++ b/spring-boot-demo-mq-rabbitmq/src/main/java/com/xkcoding/mq/rabbitmq/config/RabbitMqConfig.java @@ -0,0 +1,59 @@ +package com.xkcoding.mq.rabbitmq.config; + +import com.xkcoding.mq.rabbitmq.constants.RabbitConsts; +import org.springframework.amqp.core.DirectExchange; +import org.springframework.amqp.core.FanoutExchange; +import org.springframework.amqp.core.Queue; +import org.springframework.amqp.core.TopicExchange; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + *
+ * RabbitMQ配置,主要是配置队列,如果提前存在该队列,可以省略本配置类 + *
+ * + * @package: com.xkcoding.mq.rabbitmq.config + * @description: RabbitMQ配置,主要是配置队列,如果提前存在该队列,可以省略本配置类 + * @author: yangkai.shen + * @date: Created in 2018-12-29 17:03 + * @copyright: Copyright (c) 2018 + * @version: V1.0 + * @modified: yangkai.shen + */ +@Configuration +public class RabbitMqConfig { + + /** + * 直接模式队列 + */ + @Bean + public DirectExchange directQueue() { + return new DirectExchange(RabbitConsts.DIRECT_MODE_QUEUE); + } + + /** + * 分列模式队列 + */ + @Bean + public FanoutExchange fanoutQueue() { + return new FanoutExchange(RabbitConsts.FANOUT_MODE_QUEUE); + } + + /** + * 主题模式队列 + */ + @Bean + public TopicExchange topicQueue() { + return new TopicExchange(RabbitConsts.TOPIC_MODE_QUEUE); + } + + /** + * 延迟模式队列 + */ + @Bean + public Queue delayQueue() { + return new Queue(RabbitConsts.DELAY_MODE_QUEUE, true); + } + +} diff --git a/spring-boot-demo-mq-rabbitmq/src/main/java/com/xkcoding/mq/rabbitmq/constants/RabbitConsts.java b/spring-boot-demo-mq-rabbitmq/src/main/java/com/xkcoding/mq/rabbitmq/constants/RabbitConsts.java new file mode 100644 index 0000000..07d4370 --- /dev/null +++ b/spring-boot-demo-mq-rabbitmq/src/main/java/com/xkcoding/mq/rabbitmq/constants/RabbitConsts.java @@ -0,0 +1,36 @@ +package com.xkcoding.mq.rabbitmq.constants; + +/** + *+ * RabbitMQ常量池 + *
+ * + * @package: com.xkcoding.mq.rabbitmq.constants + * @description: RabbitMQ常量池 + * @author: yangkai.shen + * @date: Created in 2018-12-29 17:08 + * @copyright: Copyright (c) 2018 + * @version: V1.0 + * @modified: yangkai.shen + */ +public interface RabbitConsts { + /** + * 直接模式 + */ + String DIRECT_MODE_QUEUE = "queue_direct"; + + /** + * 分列模式 + */ + String FANOUT_MODE_QUEUE = "queue_fanout"; + + /** + * 主题模式 + */ + String TOPIC_MODE_QUEUE = "queue_topic"; + + /** + * 延迟模式 + */ + String DELAY_MODE_QUEUE = "delay_topic"; +} diff --git a/spring-boot-demo-mq-rabbitmq/src/main/java/com/xkcoding/mq/rabbitmq/message/MessageStruct.java b/spring-boot-demo-mq-rabbitmq/src/main/java/com/xkcoding/mq/rabbitmq/message/MessageStruct.java new file mode 100644 index 0000000..8931b1e --- /dev/null +++ b/spring-boot-demo-mq-rabbitmq/src/main/java/com/xkcoding/mq/rabbitmq/message/MessageStruct.java @@ -0,0 +1,25 @@ +package com.xkcoding.mq.rabbitmq.message; + +import lombok.Data; + +import java.io.Serializable; + +/** + *+ * 测试消息体 + *
+ * + * @package: com.xkcoding.mq.rabbitmq.message + * @description: 测试消息体 + * @author: yangkai.shen + * @date: Created in 2018-12-29 16:22 + * @copyright: Copyright (c) 2018 + * @version: V1.0 + * @modified: yangkai.shen + */ +@Data +public class MessageStruct implements Serializable { + private static final long serialVersionUID = 392365881428311040L; + + private String message; +} diff --git a/spring-boot-demo-mq-rabbitmq/src/main/resources/application.properties b/spring-boot-demo-mq-rabbitmq/src/main/resources/application.properties deleted file mode 100644 index e69de29..0000000 diff --git a/spring-boot-demo-mq-rabbitmq/src/main/resources/application.yml b/spring-boot-demo-mq-rabbitmq/src/main/resources/application.yml new file mode 100644 index 0000000..560e6e9 --- /dev/null +++ b/spring-boot-demo-mq-rabbitmq/src/main/resources/application.yml @@ -0,0 +1,17 @@ +server: + port: 8080 + servlet: + context-path: /demo +spring: + rabbitmq: + host: localhost + port: 5672 + username: guest + password: guest + virtual-host: / + # 手动提交消息 + listener: + simple: + acknowledge-mode: manual + direct: + acknowledge-mode: manual \ No newline at end of file