import org.slf4j.Logger;
import org.springframework.http.HttpOutputMessage;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageNotWritableException;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.util.StreamUtils;
import java.io.IOException;
import java.lang.reflect.Type;
import java.nio.charset.Charset;
import static org.slf4j.LoggerFactory.getLogger;
/**
* Created by userwyh on 2017/3/4.
*/
public class MappingJackson2HttpMessageConverterFactory {
private static final Logger logger = getLogger(MappingJackson2HttpMessageConverterFactory.class);
public MappingJackson2HttpMessageConverter init() {
return new MappingJackson2HttpMessageConverter(){
/**
* 重写Jackson消息转换器的writeInternal方法
* SpringMVC选定了具体的消息转换类型后,会调用具体类型的write方法,将Java对象转换后写入返回内容
*/
@Override
protected void writeInternal(Object object, Type type, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException {
logger.info("返回值不是String类型,还是使用之前选择的转换器进行消息转换");
super.writeInternal(object, type, outputMessage);
}
};
}
}
import org.springframework.http.HttpOutputMessage;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageNotWritableException;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.util.StreamUtils;
import java.io.IOException;
import java.lang.reflect.Type;
import java.nio.charset.Charset;
import static org.slf4j.LoggerFactory.getLogger;
/**
* Created by userwyh on 2017/3/4.
*/
public class MappingJackson2HttpMessageConverterFactory {
private static final Logger logger = getLogger(MappingJackson2HttpMessageConverterFactory.class);
public MappingJackson2HttpMessageConverter init() {
return new MappingJackson2HttpMessageConverter(){
/**
* 重写Jackson消息转换器的writeInternal方法
* SpringMVC选定了具体的消息转换类型后,会调用具体类型的write方法,将Java对象转换后写入返回内容
*/
@Override
protected void writeInternal(Object object, Type type, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException {
logger.info("返回值不是String类型,还是使用之前选择的转换器进行消息转换");
super.writeInternal(object, type, outputMessage);
}
};
}
}