From 43c8437f41bb41723d270f6e2bc9342ca9a1cb42 Mon Sep 17 00:00:00 2001
From: fst1996 <2411194573@qq.com>
Date: Thu, 14 Sep 2023 21:05:28 +0800
Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 47 +++++++++
pom.xml | 50 ++++++++++
.../common/rabbit/config/RabbitMQConfig.java | 46 +++++++++
.../common/rabbit/constant/QueueConstant.java | 19 ++++
.../bawei/common/rabbit/domain/Message.java | 96 +++++++++++++++++++
.../bawei/common/rabbit/enums/QueueEnum.java | 37 +++++++
...ot.autoconfigure.AutoConfiguration.imports | 1 +
7 files changed, 296 insertions(+)
create mode 100644 .gitignore
create mode 100644 pom.xml
create mode 100644 src/main/java/com/bawei/common/rabbit/config/RabbitMQConfig.java
create mode 100644 src/main/java/com/bawei/common/rabbit/constant/QueueConstant.java
create mode 100644 src/main/java/com/bawei/common/rabbit/domain/Message.java
create mode 100644 src/main/java/com/bawei/common/rabbit/enums/QueueEnum.java
create mode 100644 src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..05d7c76
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,47 @@
+######################################################################
+# Build Tools
+
+.gradle
+/build/
+!gradle/wrapper/gradle-wrapper.jar
+
+target/
+!.mvn/wrapper/maven-wrapper.jar
+
+######################################################################
+# IDE
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### JRebel ###
+rebel.xml
+### NetBeans ###
+nbproject/private/
+build/*
+nbbuild/
+dist/
+nbdist/
+.nb-gradle/
+target/
+
+######################################################################
+# Others
+*.log
+*.xml.versionsBackup
+*.swp
+
+!*/build/*.java
+!*/build/*.html
+!*/build/*.xml
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..3b7ea31
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,50 @@
+
+
+
+ menghang-common
+ com.bawei
+ 3.6.0
+
+ 4.0.0
+
+ 3.6.0
+ menghang-common-rabbit
+
+
+
+ menghang-public
+ 梦航-public
+ http://192.168.111.130:8081/repository/maven-public/
+
+
+
+
+
+ menghang-releases
+ 梦航-releases
+ http://192.168.111.130:8081/repository/maven-releases/
+
+
+
+
+ 8
+ 8
+ UTF-8
+
+
+
+
+
+ com.bawei
+ menghang-common-core
+ 3.6.0
+
+
+
+ org.springframework.boot
+ spring-boot-starter-amqp
+
+
+
diff --git a/src/main/java/com/bawei/common/rabbit/config/RabbitMQConfig.java b/src/main/java/com/bawei/common/rabbit/config/RabbitMQConfig.java
new file mode 100644
index 0000000..2b51ede
--- /dev/null
+++ b/src/main/java/com/bawei/common/rabbit/config/RabbitMQConfig.java
@@ -0,0 +1,46 @@
+package com.bawei.common.rabbit.config;
+
+import org.springframework.amqp.rabbit.annotation.RabbitListenerConfigurer;
+import org.springframework.amqp.rabbit.connection.ConnectionFactory;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
+import org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistrar;
+import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.messaging.converter.MappingJackson2MessageConverter;
+import org.springframework.messaging.handler.annotation.support.DefaultMessageHandlerMethodFactory;
+import org.springframework.messaging.handler.annotation.support.MessageHandlerMethodFactory;
+
+@Configuration
+public class RabbitMQConfig implements RabbitListenerConfigurer {
+
+ // 可以将json串反序列化为对象
+ @Override
+ public void configureRabbitListeners(RabbitListenerEndpointRegistrar rabbitListenerEndpointRegistrar) {
+ rabbitListenerEndpointRegistrar.setMessageHandlerMethodFactory(messageHandlerMethodFactory());
+ }
+
+ @Bean
+ MessageHandlerMethodFactory messageHandlerMethodFactory(){
+ DefaultMessageHandlerMethodFactory messageHandlerMethodFactory = new DefaultMessageHandlerMethodFactory();
+ messageHandlerMethodFactory.setMessageConverter(mappingJackson2MessageConverter());
+ return messageHandlerMethodFactory;
+ }
+
+ @Bean
+ public MappingJackson2MessageConverter mappingJackson2MessageConverter(){
+ return new MappingJackson2MessageConverter();
+ }
+
+ /**
+ * 提供自定义RabbitTemplate,将对象序列化为json串
+ * @param connectionFactory
+ * @return
+ */
+ @Bean
+ public RabbitTemplate jacksonRabbitTemplate(ConnectionFactory connectionFactory) {
+ RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
+ rabbitTemplate.setMessageConverter(new Jackson2JsonMessageConverter());
+ return rabbitTemplate;
+ }
+}
diff --git a/src/main/java/com/bawei/common/rabbit/constant/QueueConstant.java b/src/main/java/com/bawei/common/rabbit/constant/QueueConstant.java
new file mode 100644
index 0000000..658f232
--- /dev/null
+++ b/src/main/java/com/bawei/common/rabbit/constant/QueueConstant.java
@@ -0,0 +1,19 @@
+package com.bawei.common.rabbit.constant;
+
+/**
+ * @author DongZl
+ * @description: 队列常量
+ * @Date 2022-10-21 下午 01:59
+ */
+public class QueueConstant {
+
+ /**
+ * 测试队列名称
+ */
+ public static final String TEST_NAME = "test";
+
+ /**
+ * 商品新增队列
+ */
+ public static final String PRODUCT_ADD = "product_add";
+}
diff --git a/src/main/java/com/bawei/common/rabbit/domain/Message.java b/src/main/java/com/bawei/common/rabbit/domain/Message.java
new file mode 100644
index 0000000..f76d440
--- /dev/null
+++ b/src/main/java/com/bawei/common/rabbit/domain/Message.java
@@ -0,0 +1,96 @@
+package com.bawei.common.rabbit.domain;
+
+
+import com.alibaba.fastjson2.JSONObject;
+import com.bawei.common.core.utils.uuid.IdUtils;
+import com.bawei.common.core.web.domain.BaseEntity;
+
+import javax.swing.text.html.parser.Entity;
+import java.io.Serializable;
+
+/**
+ * @author DongZl
+ * @description: RabbitMq消息体
+ * @Date 2022-10-21 上午 09:14
+ */
+public class Message implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 消息ID
+ */
+ private String id;
+
+ /**
+ * 消息创建时间
+ */
+ private long createTime;
+
+ /**
+ * 消息主体
+ */
+ private T body;
+
+ public Message () {
+ }
+
+ public Message (String id, T body) {
+ this.id = id;
+ this.createTime = System.currentTimeMillis();
+ this.body = body;
+ }
+
+ /**
+ * 自动生成消息ID
+ * @param body 消息主体
+ * @return
+ */
+ public static Message builderMsg(T body){
+ return new Message(IdUtils.fastUUID(), body);
+ }
+
+ /**
+ * 生成消息主题
+ * @param id 唯一标识
+ * @param body 消息主体
+ * @return
+ */
+ public static Message builderMsg(String id, T body){
+ return new Message(id, body);
+ }
+
+
+ public String getId () {
+ return id;
+ }
+
+ public void setId (String id) {
+ this.id = id;
+ }
+
+ public long getCreateTime () {
+ return createTime;
+ }
+
+ public void setCreateTime (long createTime) {
+ this.createTime = createTime;
+ }
+
+ public T getBody () {
+ return body;
+ }
+
+ public void setBody (T body) {
+ this.body = body;
+ }
+
+ @Override
+ public String toString () {
+ return "Message{" +
+ "id='" + id + '\'' +
+ ", createTime=" + createTime +
+ ", body=" + JSONObject.toJSONString(body) +
+ '}';
+ }
+}
diff --git a/src/main/java/com/bawei/common/rabbit/enums/QueueEnum.java b/src/main/java/com/bawei/common/rabbit/enums/QueueEnum.java
new file mode 100644
index 0000000..4af9585
--- /dev/null
+++ b/src/main/java/com/bawei/common/rabbit/enums/QueueEnum.java
@@ -0,0 +1,37 @@
+package com.bawei.common.rabbit.enums;
+
+import com.bawei.common.rabbit.constant.QueueConstant;
+
+/**
+ * @author DongZl
+ * @description: 队列枚举
+ * @Date 2022-10-21 下午 01:44
+ */
+public enum QueueEnum {
+
+
+ TEST(QueueConstant.TEST_NAME, "测试队列"),
+ PRODUCT_ADD(QueueConstant.PRODUCT_ADD, "商品新增队列"),
+ ;
+
+ private String queueName;
+
+ private String queueDesc;
+
+ public String queueName () {
+ return queueName;
+ }
+
+ public String queueDesc () {
+ return queueDesc;
+ }
+
+ public String queueStr(){
+ return new StringBuilder(this.queueName).append("(").append(this.queueDesc).append(")").toString();
+ }
+
+ QueueEnum (String queueName, String queueDesc) {
+ this.queueName = queueName;
+ this.queueDesc = queueDesc;
+ }
+}
diff --git a/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 0000000..42ba023
--- /dev/null
+++ b/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+com.bawei.common.rabbit.config.RabbitMQConfig