注入一个RequestMappingHandlerAdapter实例
@Autowired
RequestMappingHandlerAdapter requestMappingHandlerAdapter;
调用getMessageConverters方法,就可以返回注册的所有HttpMessageConverter
List<HttpMessageConverter<?>> messageConverters = requestMappingHandlerAdapter.getMessageConverters();
使用时,从第一个开始找,支持的,就拿来使用。
如果想要使用自己的 HttpMessageConverter,可以自己写一段生成HttpMessageConverter Bean的配置。
@Bean
public HttpMessageConverters fastJsonHttpMessageConverters() {
// 1、定义一个convert转换消息的对象
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
// 2、添加fastjson的配置信息
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
fastJsonConfig.setSerializerFeatures(SerializerFeature.DisableCircularReferenceDetect);
// 3、在convert中添加配置信息
fastConverter.setFastJsonConfig(fastJsonConfig);
// 4、将convert添加到converters中
HttpMessageConverter<?> converter = fastConverter;
return new HttpMessageConverters(converter);
}
这个,就会排在最前面。
如果自己不写的话,如果是返回json,默认会使用
MappingJackson2HttpMessageConverter
参考:
https://stackoverflow.com/questions/11970358/is-there-a-way-to-get-all-registered-message-converters