如果canRead和canWrite为false,则跳过HttpMessageConverter

时间:2019-07-23 08:10:28

标签: json spring spring-boot http-message-converter spring-boot-2

我有一个自定义MappingJackson2HttpMessageConverter,我将其添加到转换器列表的顶部:

 @Override
 public void extendMessageConverters(final List<HttpMessageConverter<?>> converters) {
    converters.add(0, customJacksonMessageConverter());
}

但是,有时我需要跳过此操作并使用Spring默认值MappingJackson2HttpMessageConverter,就像我想通过Spring Boot Admin更新应用程序的日志记录级别时一样。在我的自定义转换器中,我用添加的调试日志行覆盖了canRead()canWrite(),以查看返回的值是什么,并且我可以看到它们在需要时都返回false省略。但是,使用默认解析失败。如果我从列表中删除我的自定义转换器,则默认设置确实有效。

我的转换器列表如下:

com.meanwhile.in.hell.converters.json.CustomJacksonMessageConverter
org.springframework.http.converter.ByteArrayHttpMessageConverter
org.springframework.http.converter.StringHttpMessageConverter
org.springframework.http.converter.StringHttpMessageConverter
org.springframework.http.converter.ResourceHttpMessageConverter
org.springframework.http.converter.ResourceRegionHttpMessageConverter
org.springframework.http.converter.xml.SourceHttpMessageConverter
org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter
org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter
org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter

我不知道为什么我的自定义转换器返回falsecanRead()的{​​{1}}的原因,它不只是跳过此列表并继续向下转换列表,直到它进入默认的Spring JSON转换器。

0 个答案:

没有答案