如何在 Spring 引导中使用注释来使用参数解析器?

How to use argument-resolvers using annotation in Spring boot?

我想在 Spring 引导中使用 argument-resolvers。我该怎么做? 它是在 XML 中完成的,如下所示。

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

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 将覆盖引导默认值,您可能想跳过它。

当我想将 spring mvc 转换为 时,我遇到了与 Datatables 相同的问题spring bootuseWebMvcConfigurerAdapter,所以我需要将我的调度程序 servlet xml 转换为 java bean 配置,我已经完成了这 :

来自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();
        }
    }