当前位置: 首页 > 面试题库 >

在使用基于Spring注释的配置时如何配置MappingJacksonHttpMessageConverter?

尹乐邦
2023-03-14
问题内容

不合理,无法通过注释而不是纯XML Bean来配置Spring Bean,现在我正面临后果。

我使用以下方式配置REST通道

<mvc:annotation-driven />

现在,我只需要简单地将设置MappingJacksonHttpMessageConverter为仅将此具有非null值的字段输出到JSON。我尝试了以下方法:

<bean id="jsonHttpMessageConverter"
    class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
    <property name="prefixJson" value="false" />
    <property name="supportedMediaTypes" value="application/json" />
    <property name="objectMapper">
        <bean class="org.codehaus.jackson.map.ObjectMapper">
            <property name="serializationInclusion" value="NON_NULL"/>
        </bean>
    </property>
</bean>

Bean被创建,但是转换器的另一个实例已创建并在通道中使用。所以我已经尝试过这种方法@Configuration@Bean在Stackoverflow问题中进行了描述,但是json序列化仍然使用其自己的配置。

最后,我尝试通过注入注入映射器

@Autowired
private MappingJacksonHttpMessageConverter jacksonConverter;

但是我已经结束了NoSuchBeanDefinitionException。所以现在我没有选择了,因此我想在这里提出任何想法。如何控制和配置框架使用的映射器?


问题答案:

使用WebMvcConfigurer.configureMessageConverters()方法:

配置HttpMessageConverters以使用[…]如果列表中未添加任何消息转换器,则默认添加转换器。

随着@Configuration你有:

@Configuration
class MvcConf extends WebMvcConfigurationSupport {
    protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        converters.add(converter());
        addDefaultHttpMessageConverters(converters);
    }

    @Bean
    MappingJacksonHttpMessageConverter converter() {
        MappingJacksonHttpMessageConverter converter = new MappingJacksonHttpMessageConverter()
        //do your customizations here...
        return converter;
    }
}

addDefaultHttpMessageConverters()需要调用to ,因为使用自定义转换器时未应用默认设置。

重要说明@EnableWebMvc如果扩展WebMvcConfigurationSupport,则 必须删除要配置的转换器。



 类似资料:
  • 最后,我尝试通过 但我以结束。所以现在我别无选择,所以我在这里征求任何想法。如何控制和配置框架使用的映射器?

  • 问题内容: 在最近我从事的一些大型项目中,选择其中一种(XML或注释)似乎变得越来越重要。随着项目的发展,一致性对于可维护性非常重要。 我的问题是:与基于注释的配置相比,基于XML的配置有哪些优势?与基于XML的配置相比,基于注释的配置有哪些优势? 问题答案: 注释有其用途,但它们不是杀死XML配置的灵丹妙药。我建议将两者混合! 例如,如果使用Spring,则将XML用于应用程序的依赖注入部分是完

  • 下面是当前的web.xml片段: 我非常感谢你的帮助。

  • 我是一个新的Spring,并在某些方面被卡住了,如下所述- 我有一个类color,它有两个不同的实现名,分别是Red和Blue,我想使用将这两个实现名都注入color列表中。 但将异常获取为 自动连线依赖项的注入失败;嵌套异常为org.springframework.beans.factory.beanCreationException:无法自动连接字段:private java.util.lis

  • 问题内容: 最近,在我们的团队中,我们开始讨论在代码中使用spring注释来定义spring依赖关系。当前,我们正在使用context.xml定义依赖项。您能给我一些关于这两种方法的线索吗?何时更好地使用? 编辑:我知道这似乎是对更一般的问题的重复问题,但是我对仅依赖注入的注解和配置的影响感兴趣,我相信与一般问题相比,注解和配置的影响会有所不同。 问题答案: 在阅读了此处的一些相关文章并在团队中进

  • 我是Spring的新手,尝试将基于xml的配置转换为注释basic。我读了这个教程。它与基于xml的配置完美结合。MVCSpring积垢教程 现在我将所有基于xml的配置转换为注释,但我有一个问题。我几乎把我读到的东西都读了一遍,但我没有解决这个问题。 组织。springframework。豆。工厂BeanCreationException:创建名为“personController”的bean时