CustomHttpMessageConverterConfig.java 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package com.emato.cus.supervise.config.httpMsgCvt;
  2. import com.fasterxml.jackson.databind.ObjectMapper;
  3. import org.slf4j.Logger;
  4. import org.slf4j.LoggerFactory;
  5. import org.springframework.context.annotation.Bean;
  6. import org.springframework.context.annotation.Configuration;
  7. import org.springframework.http.HttpOutputMessage;
  8. import org.springframework.http.converter.HttpMessageNotWritableException;
  9. import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
  10. import java.io.IOException;
  11. import java.lang.reflect.Type;
  12. /**
  13. * 自定义 HttpMessageConverter 消息转换器
  14. *
  15. * @author Scott Chen
  16. * @date 2017/4/19
  17. */
  18. @Configuration
  19. public class CustomHttpMessageConverterConfig {
  20. @Bean
  21. public MappingJackson2HttpMessageConverter customMessageConverter(ObjectMapper objectMapper) {
  22. MappingJackson2HttpMessageConverter bean =
  23. new MappingJackson2HttpMessageConverter(objectMapper) {
  24. private final Logger logger = LoggerFactory.getLogger(MappingJackson2HttpMessageConverter.class);
  25. @Override
  26. protected void writeInternal(Object object, Type type, HttpOutputMessage outputMessage)
  27. throws IOException, HttpMessageNotWritableException {
  28. /**
  29. * 外部消息如果不是 ResponseMessage
  30. * 重新包装成 ResponseMessage
  31. */
  32. /*ResponseMessage responseMessage;
  33. if (object == null) {
  34. responseMessage = ResponseMessage.builder().build();
  35. } else if (object instanceof ResponseMessage) {
  36. responseMessage = (ResponseMessage) object;
  37. } else if (object instanceof String) {
  38. responseMessage = ResponseMessage.builder()
  39. .setMsg((String) object)
  40. .build();
  41. } else {
  42. ResponseMessageData respData = ResponseMessageData.builder(object, Object.class).build();
  43. responseMessage = ResponseMessage.builder()
  44. .setData(respData)
  45. .build();
  46. }*/
  47. super.writeInternal(object, Object.class, outputMessage);
  48. String result = objectMapper.writeValueAsString(object);
  49. logger.info("返回数据:{}", result);
  50. }
  51. };
  52. return bean;
  53. }
  54. }