《Spring Cloud实战演练》试读:2.6 更改默认的JSON转换器

Spring Boot默认使用Jackson引擎去解析控制器返回的对象,该引擎在性能和便捷性上与第三方引擎(FastJson和Gson等)还有一定的差距,本节将介绍如何将默认转换器替换为FastJson转换器。 (1) 在pom.xml中添加对FastJson的依赖: <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency> (2) 修改WebConfig类,为其添加方法并设置FastJson转换器: @SpringBootConfiguration public class WebConfig extends WebMvcConfigurationSupport{ @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { super.configureMessageConverters(converters); FastJsonHttpMessageConverter fastConverter=new FastJsonHttpMessageConverter(); FastJsonConfig fastJsonConfig=new FastJsonConfig(); fastJsonConfig.setSerializerFeatures( SerializerFeature.PrettyFormat ); List<MediaType> mediaTypeList = new ArrayList<>(); //设置编码为UTF-8 mediaTypeList.add(MediaType.APPLICATION_JSON_UTF8); fastConverter.setSupportedMediaTypes(mediaTypeList); fastConverter.setFastJsonConfig(fastJsonConfig); converters.add(fastConverter); } } 首先应继承WebMvcConfigurationSupport类,该类提供了Spring Boot对Spring MVC的支持。然后重写configureMessageConverters方法,该方法配置了消息转换器。如果第三方框架希望处理Spring MVC中的请求和响应时,那么需要实现HttpMessageConverter接口。而在上述代码中,FastJsonHttpMessageConverter便是如此,它实现了HttpMessageConverter接口,并通过FastJsonConfig设置FastJson的处理参数,如通过MediaType设置编码为UTF-8,最后添加到HttpMessageConverter中。 这样Spring MVC在处理响应时就可以将JSON解析引擎替换为FastJson。 说明:前面提到,如果控制器返回的是String类型的值,则需要显式设置编码。我们替换成FastJson后,由于已经设置了编码,所以无论是字符串还是对象,都无须设置编码方式,读者可以试一试。

>Spring Cloud实战演练

Spring Cloud实战演练
作者: 李 熠
isbn: 7115519986
书名: Spring Cloud实战演练
页数: 262
定价: 69.00元
出版社: 人民邮电出版社
出版年: 2019-9
装帧: 平装