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