如何在Spring启动中使用注释解析器?

时间:2015-03-20 20:16:33

标签: spring spring-boot

我想在Spring启动中使用argument-resolvers。我该怎么办呢? 它以XML格式完成,如下所示。

<mvc:annotation-driven>
    <mvc:argument-resolvers>
        <bean class="nl.t42.spring31.ValidatingRequestBodyMethodArgumentResolver"/>
    </mvc:argument-resolvers>
</mvc:annotation-driven>

2 个答案:

答案 0 :(得分:11)

请参阅here

你可以这样做:

@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {

  @Override
  public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
      // equivalent to <mvc:argument-resolvers>
  }


  @Override
  public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
      // equivalent to <mvc:message-converters>
  }
}

@EnableWebMvc将覆盖引导默认值,您可能希望跳过它。

答案 1 :(得分:0)

当我要将我的 spring mvc 转换为 spring boot useWebMvcConfigurerAdapter 时,我遇到了与 Datatables 相同的问题>,所以我需要将调度程序servlet xml转换为java bean config,我已经这样做了:

从dispatcher.servlet.xml:

       <mvc:argument-resolvers>
         <bean 
 class="com.github.dandelion.datatables.extras.spring3.ajax.DatatablesCriteriasMethodArgu 
        mentResolver"/>
     </mvc:argument-resolvers>

到Java bean配置:

@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {

        @Override
        public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
            // equivalent to <mvc:argument-resolvers>
            argumentResolvers.add(resolver());
        }


        private HandlerMethodArgumentResolver resolver() {
            return new com.github.dandelion.datatables.extras.spring3.ajax.DatatablesCriteriasMethodArgumentResolver();
        }
    }