1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- package com.lote.wms.config;
- import com.fasterxml.jackson.databind.ObjectMapper;
- import com.lote.wms.common.utils.JacksonUtil;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Qualifier;
- import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.http.MediaType;
- import org.springframework.http.converter.HttpMessageConverter;
- import org.springframework.http.converter.StringHttpMessageConverter;
- import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
- import java.nio.charset.Charset;
- import java.util.ArrayList;
- import java.util.LinkedList;
- import java.util.List;
- /**
- * HTTP 请求响应消息转换
- * @author Scott Chen
- * @since 1.0
- * 2018-02-03
- */
- @Configuration
- public class HttpMsgConverter {
- private static final Logger logger = LoggerFactory.getLogger(HttpMsgConverter.class);
- @Autowired
- @Qualifier("customObjectMapper")
- ObjectMapper customObjectMapper;
- @Bean(name = "customObjectMapper")
- public ObjectMapper customObjectMapper(){
- return JacksonUtil.newObjectMapper();
- }
- /**
- * 扩展现有的消息转换器链表
- * 也可以继承并重写{@link org.springframework.web.servlet.config.annotation.WebMvcConfigurer#configureMessageConverters}方法
- * @return
- */
- @Bean
- public HttpMessageConverters httpMessageConverters() {
- List<HttpMessageConverter<?>> list = new ArrayList<>();
- list.add(httpMessageConverter());
- list.add(mappingJackson2HttpMessageConverter());
- logger.debug("--- 创建HttpMessageConverters Bean");
- return new HttpMessageConverters(list);
- }
- /**
- * jackson进行消息转换时,处理中文乱码
- * @return
- */
- @Bean
- public HttpMessageConverter httpMessageConverter() {
- StringHttpMessageConverter messageConverter = new StringHttpMessageConverter();
- messageConverter.setSupportedMediaTypes(mediaTypes());
- messageConverter.setDefaultCharset(Charset.forName("UTF-8"));
- return messageConverter;
- }
- /**
- * 处理中文乱码
- * @return
- */
- public List<MediaType> mediaTypes() {
- //处理中文乱码
- List<MediaType> list = new LinkedList();
- list.add(MediaType.TEXT_HTML);
- list.add(MediaType.APPLICATION_JSON);
- return list;
- }
- /**
- * HTTP 请求消息转换器
- * 处理Date日期类型,处理LocalDateTime日期类型
- * 使用<code>MappingJackson2HttpMessageConverter</code>类
- * @return
- */
- @Bean
- public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
- MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();
- messageConverter.setObjectMapper(customObjectMapper);
- messageConverter.setSupportedMediaTypes(mediaTypes());
- logger.debug("--- 创建MappingJackson2HttpMessageConverter Bean");
- return messageConverter;
- }
- }
|