0
点赞
收藏
分享

微信扫一扫

如何获得注册了哪些HttpMessageConverter


注入一个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


举报

相关推荐

0 条评论