方法一:最安全做法使用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);
}
}