WebMvcConfigurer

 基于java-based方式的spring mvc配置,需要创建一个配置类并实现WebMvcConfigurer 接口,WebMvcConfigurerAdapter 抽象类是对WebMvcConfigurer接口的简单抽象(增加了一些默认实现),所以上面配置代码选择直接继承WebMvcConfigurerAdapter 。然后根据项目的需要实现接口中特定的方法,最后要注意的是,要在配置类上标注@EnableWebMvc。 
  到这里可能有人会问,我怎么知道实现哪些方法?具体该怎么配?它们之间的处理流程是怎样的?好的,别急,我们一步步来。 
  首先第一步,我们需要知道WebMvcConfigurer 接口都提供了哪些回调方法?

WebMvcConfigurer

package org.springframework.web.servlet.config.annotation;
/**
 * 篇幅原因,我们先只介绍Spring mvc常用的一些方法
 */
public interface WebMvcConfigurer {

    void addFormatters(FormatterRegistry registry);

    void configureMessageConverters(List<HttpMessageConverter<?>> converters);

    void extendMessageConverters(List<HttpMessageConverter<?>> converters);

    Validator getValidator();

    /* 配置内容裁决的一些选项*/
    void configureContentNegotiation(ContentNegotiationConfigurer configurer);

    void configureAsyncSupport(AsyncSupportConfigurer configurer);

    /* @since 4.0.3 */
    void configurePathMatch(PathMatchConfigurer configurer);

    /*参数解析*/
    void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers);

    /*返回值解析*/
    void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers);

    /*异常处理*/
    void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers);

    void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers);

    void addInterceptors(InterceptorRegistry registry);

    MessageCodesResolver getMessageCodesResolver();

    void addViewControllers(ViewControllerRegistry registry);

    /**
     * 这里配置视图解析器
     */
    void configureViewResolvers(ViewResolverRegistry registry);

    /**
     *静态资源处理
     */
    void addResourceHandlers(ResourceHandlerRegistry registry);

    void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer);

    void addCorsMappings(CorsRegistry registry);
}
原文地址:https://www.cnblogs.com/panxuejun/p/6737031.html