方法一:最安全做法使用bean替代默認(rèn)轉(zhuǎn)換器方法
寫法一
@Configuration public class MyConfiguration { @Bean public HttpMessageConverters customConverters() { List<HttpMessageConverters> converters = new ArrayList<>(); // 1、需要先定義一個(gè)convert轉(zhuǎn)換消息的對象; FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); // 2、添加fastjson的配置信息,比如 是否要格式化返回json數(shù)據(jù) FastJsonConfig fastJsonConfig = new FastJsonConfig(); fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat); // 3、在convert中添加配置信息. fastConverter.setFastJsonConfig(fastJsonConfig); // 4、將convert添加到converters當(dāng)中. converters.add(fastConverter); return new HttpMessageConverters(true, converters); } }
//寫法二
@Configuration public class FastJsonHttpMessageConfig { @Bean public HttpMessageConverters fastJsonHttpMessageConverters() { FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); FastJsonConfig fastJsonConfig = new FastJsonConfig(); fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullListAsEmpty, SerializerFeature.WriteNullStringAsEmpty, SerializerFeature.WriteNullNumberAsZero, SerializerFeature.WriteNullBooleanAsFalse); fastJsonConfig.setFeatures(Feature.OrderedField); List<MediaType> fastMedisTypes = new ArrayList<>(); fastMedisTypes.add(MediaType.APPLICATION_JSON_UTF8); fastConverter.setSupportedMediaTypes(fastMedisTypes); fastConverter.setFastJsonConfig(fastJsonConfig); HttpMessageConverter<?> converter = fastConverter; return new HttpMessageConverters(converter); } }
方法二
第三種實(shí)現(xiàn)父類,缺點(diǎn)很明顯,完全接管的springmvc,默認(rèn)配置全部失效,需要重新自己配置
@Configuration public class SpringMvcConfigure extends WebMvcConfigurationSupport{ /** * 配置消息轉(zhuǎn)換器 * @param converters */ @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter(); //自定義配置... FastJsonConfig config = new FastJsonConfig(); config.setSerializerFeatures(SerializerFeature.QuoteFieldNames, SerializerFeature.WriteEnumUsingToString, /*SerializerFeature.WriteMapNullValue,*/ SerializerFeature.WriteDateUseDateFormat, SerializerFeature.DisableCircularReferenceDetect); fastJsonHttpMessageConverter.setFastJsonConfig(config); converters.add(fastJsonHttpMessageConverter); supper.configureMessageConverters(converters); } }