当我们拿到豆SpringBoot WebMvcConfigurationSupport没有采取configureMessageConverters

问题描述 投票:0回答:2

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

java spring-boot spring-mvc converters
2个回答
0
投票

我找到了一个解决方案。扩展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());
}

0
投票

我是Web MVC框架和REST API的斗争。一旦qazxsw POI,它将覆盖qazxsw POI配置。

我的解决方案,获得当前@EnableWebMvc和自定义这是我想要的。

spring.jackson.*
© www.soinside.com 2019 - 2024. All rights reserved.