From 87af14a2e763d8e97eece2e2d2a3b787da6aa8f7 Mon Sep 17 00:00:00 2001
From: xufenglei <xufenglei>
Date: Mon, 23 Mar 2020 16:45:19 +0800
Subject: [PATCH] update

---
 src/main/java/com/moral/util/MessageConverter.java |   45 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 45 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/moral/util/MessageConverter.java b/src/main/java/com/moral/util/MessageConverter.java
new file mode 100644
index 0000000..93ce3cd
--- /dev/null
+++ b/src/main/java/com/moral/util/MessageConverter.java
@@ -0,0 +1,45 @@
+package com.moral.util;
+
+import java.io.UnsupportedEncodingException;
+import java.util.Map;
+
+import org.springframework.amqp.core.Message;
+import org.springframework.amqp.core.MessageProperties;
+import org.springframework.amqp.support.converter.AbstractMessageConverter;
+import org.springframework.amqp.support.converter.MessageConversionException;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.TypeReference;
+
+public class MessageConverter extends AbstractMessageConverter {
+
+    public static final String DEFAULT_CHARSET = "UTF-8";
+
+    @Override
+    protected Message createMessage(Object objectToConvert, MessageProperties messageProperties) throws MessageConversionException {
+        byte[] bytes = null;
+        try {
+            String jsonString = JSON.toJSONString(objectToConvert);
+            bytes = jsonString.getBytes(DEFAULT_CHARSET);
+        } catch (UnsupportedEncodingException e) {
+            throw new MessageConversionException("Failed to convert Message content", e);
+        }
+        messageProperties.setContentType(MessageProperties.CONTENT_TYPE_JSON);
+        messageProperties.setContentEncoding(DEFAULT_CHARSET);
+        if (bytes != null) {
+            messageProperties.setContentLength(bytes.length);
+        }
+        return new Message(bytes, messageProperties);
+    }
+
+    @Override
+    public Object fromMessage(Message msg) throws MessageConversionException {
+        String message = null;
+        try {
+            message = new String(msg.getBody(), DEFAULT_CHARSET);
+        } catch (UnsupportedEncodingException e) {
+
+        }
+        return JSON.parseObject(message, new TypeReference<Map<String, Object>>() {});
+    }
+}

--
Gitblit v1.8.0