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