有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Spring 4中registerdefaults=“false”的等价物是什么?

如何将自定义消息转换器配置为在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);
    }
}

多谢各位


共 (2) 个答案

  1. # 1 楼答案

    @shazin所写的是真的——第一篇文章中的Java配置相当于XML的^{

    然而,据我所知,如果您需要获得register-defaults="true"的等价物,您可以在WebMvcConfigurer中实现extendMessageConverters(List<HttpMessageConverter<?>> converters)方法(或在WebMvcConfigurerAdapter中重写它),如下例所示:

    public class TestDataConfig extends WebMvcConfigurerAdapter {
    
        @Override
        public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
            // your custom implementation
        }
    
    }
    
  2. # 2 楼答案

    您的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.
        }
    }