版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Michael_HM/article/details/82737144
此篇文章写给自己作为记录。如有看不懂的,请留言。
需求:
大多数时候,我们后台返回给前端的数据都是会做加密处理,同时并设置响应头,也可能对往响应头中添加数据。在SpringMVC中我们通常采用Restful 风格进行开发,使用@ResponseBody返回 Json 数据。
采用注解式。
开发:
spring5之前继承WebMvcConfigurerAdapter
spring5之后实现WebMvcConfigurer
我这里使用的是SpringBoot 2.0.4,所以是spring5
@Configuration
public class HttpConverterConfig implements WebMvcConfigurer {
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter(){
return new MappingJackson2HttpMessageConverter(){
@Override
protected void writeInternal(Object object, Type type, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException {
if(object instanceof String){
Charset charset = this.getDefaultCharset();
StreamUtils.copy((String)object, charset, outputMessage.getBody());
}else{
super.writeInternal(object, type, outputMessage);
}
}
};
}
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
MappingJackson2HttpMessageConverter converter = mappingJackson2HttpMessageConverter();
converter.setSupportedMediaTypes(new LinkedList<MediaType>(){{
add(MediaType.TEXT_HTML);
add(MediaType.APPLICATION_JSON_UTF8);
}});
converters.add(new StringHttpMessageConverter());
converters.add(converter);
}
}