我有一个自定义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
我不知道为什么我的自定义转换器返回false
和canRead()
的{{1}}的原因,它不只是跳过此列表并继续向下转换列表,直到它进入默认的Spring JSON转换器。