gpt4 book ai didi

java - Spring MVC、消息转换器、代码配置被忽略

转载 作者:太空宇宙 更新时间:2023-11-04 11:26:21 25 4
gpt4 key购买 nike

我混合使用了 xml 和基于代码的配置。我的代码配置的一部分被忽略。这个:

@Configuration
@EnableWebMvc
public class RestMvcConfig extends WebMvcConfigurerAdapter {

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(converter());
super.configureMessageConverters(converters);
}

@Bean
public MappingJackson2HttpMessageConverter converter() {
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JodaModule());
mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);

MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
converter.setObjectMapper(mapper);

return converter;
}
}

我在 Spring MVC 应用程序启动时调试 configureMessageConverters() 方法,并且它被执行。尽管如此,我在 Controller 中的 JSON 响应并没有将 Joda LocalDate 转换为字符串表示形式,而是返回整个对象结构。

为什么会被忽略?

最佳答案

结合使用 xml 和基于代码的配置,很容易出现将同一件事配置两次的情况,从而使 Spring 覆盖以前的配置。就我而言,这是由于 MVC 也在 xml 中配置:

<context:component-scan base-package="uk.co.imperatives.billing.rest" />
<mvc:annotation-driven />
<context:annotation-config />

因此,在这种情况下,xml 配置重置了我的代码配置。删除<mvc:annotation-driven />解决了问题。所以,这有效:

<context:component-scan base-package="uk.co.imperatives.billing.rest" />
<context:annotation-config />

关于java - Spring MVC、消息转换器、代码配置被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44315174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com