在WebMvcConfigurationSupport
子类中我们覆盖的方法configureMessageConverters
。
当我们得到一个转换器像一个bean,
@Bean
public HttpMessageConverter mappingJackson2HttpMessageConverter(){
MappingJackson2HttpMessageConverter jacksonConverter =
new MappingJackson2HttpMessageConverter(new EventServiceObjectMapper());
return jacksonConverter;
}
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(new Jaxb2RootElementHttpMessageConverter());
converters.add(mappingJackson2HttpMessageConverter());
}
该configuration-loader
没有采取我们的转换器。
但是,当我们宣布所有在该方法中,configuration-loader
把我们的转换器。
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(new Jaxb2RootElementHttpMessageConverter());
converters.add(new MappingJackson2HttpMessageConverter(new EventServiceObjectMapper()));
}
这是正常的?我错过了什么?
依赖::
春天webmvc 4.3.22.RELEASE
春季启动1.5.19.RELEASE
我找到了一个解决方案。扩展WebMvcConfigurerAdapter,并实现extendMessageConverters,清除转换器和设置只有我想转换器。
@Bean
public HttpMessageConverter mappingJackson2HttpMessageConverter(){
MappingJackson2HttpMessageConverter jacksonConverter =
new MappingJackson2HttpMessageConverter(new EventServiceObjectMapper());
return jacksonConverter;
}
@Override
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.clear();
converters.add(new Jaxb2RootElementHttpMessageConverter());
converters.add(mappingJackson2HttpMessageConverter());
}
我是Web MVC框架和REST API的斗争。一旦qazxsw POI,它将覆盖qazxsw POI配置。
我的解决方案,获得当前@EnableWebMvc
和自定义这是我想要的。
spring.jackson.*