如何配置我的自定义消息转换器,以便在使用Spring 4的无XML项目中拥有 register-defaults="false"
?
<mvc:annotation-driven register-defaults="false">
<mvc:message-converters>
<bean class="myproject.MyCustomHttpMessageConverter"/>
</mvc:message-converters>
</mvc:annotation-driven>
目前我有Configuration
:
@Configuration
@EnableWebMvc
@ComponentScan
public class TestDataConfig extends WebMvcConfigurerAdapter {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
final MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
converters.add(converter);
}
}
谢谢
答案 0 :(得分:7)
您的Java配置与XML配置中的register-defaults="false"
类似。你不需要做任何事情。但是如果你想注册默认值,你必须从WebMvcConfigurationSupport
扩展并添加下面代码片段中指定的最后一行。
@Configuration
@EnableWebMvc
@ComponentScan
public class TestDataConfig extends WebMvcConfigurationSupport {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
final MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
converters.add(converter);
super.addDefaultHttpMessageConverters(); // Have to call this explicitly to register Default Message Converters.
}
}
答案 1 :(得分:1)
@shazin写的是真的-第一篇文章中的Java配置等同于XML的register-defaults="false"
。
但是,据我所知,如果需要获得等效于register-defaults="true"
的信息,则可以在extendMessageConverters(List<HttpMessageConverter<?>> converters)
中实现WebMvcConfigurer
方法(或在{{1 }})-如以下示例所示:
WebMvcConfigurerAdapter