Spring之WebMvcConfigurer類詳解

一、WebMvcConfigurer介紹

WebMvcConfigurer配置類是Spring內部的一種配置方式,採用JavaBean的形式來代替傳統的xml配置文件形式進行鍼對框架個性化定製。基於java-based方式的spring mvc配置,需要創建一個配置類並實現WebMvcConfigurer 接口,WebMvcConfigurerAdapter 抽象類是對WebMvcConfigurer接口的簡單抽象(增加了一些默認實現)。

WebMvcConfigurerAdapter在SpringBoot2.0及Spring5.0中WebMvcConfigurerAdapter已被廢棄 。

官方推薦直接實現WebMvcConfigurer或者繼承WebMvcConfigurationSupport


二、WebMvcConfigurer類方法概覽

package org.springframework.web.servlet.config.annotation;

import java.util.List;
import org.springframework.format.FormatterRegistry;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.lang.Nullable;
import org.springframework.validation.MessageCodesResolver;
import org.springframework.validation.Validator;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.method.support.HandlerMethodReturnValueHandler;
import org.springframework.web.servlet.HandlerExceptionResolver;

public interface WebMvcConfigurer {
    default void configurePathMatch(PathMatchConfigurer configurer) {
    }

    default void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
    }

    default void configureAsyncSupport(AsyncSupportConfigurer configurer) {
    }

    default void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
    }

    default void addFormatters(FormatterRegistry registry) {
    }

    default void addInterceptors(InterceptorRegistry registry) {
    }

    default void addResourceHandlers(ResourceHandlerRegistry registry) {
    }

    default void addCorsMappings(CorsRegistry registry) {
    }

    default void addViewControllers(ViewControllerRegistry registry) {
    }

    default void configureViewResolvers(ViewResolverRegistry registry) {
    }

    default void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {
    }

    default void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> handlers) {
    }

    default void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    }

    default void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
    }

    default void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers) {
    }

    default void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers) {
    }

    @Nullable
    default Validator getValidator() {
        return null;
    }

    @Nullable
    default MessageCodesResolver getMessageCodesResolver() {
        return null;
    }
}


三、 WebMvcConfigurer常用方法介紹


 /* 攔截器配置 */
void addInterceptors(InterceptorRegistry var1);

/* 視圖跳轉控制器 */
void addViewControllers(ViewControllerRegistry registry);

/* 靜態資源處理 **/
void addResourceHandlers(ResourceHandlerRegistry registry);

/* 默認靜態資源處理器 */
void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer);

/* 這裏配置視圖解析器 */
void configureViewResolvers(ViewResolverRegistry registry);

/* 配置內容裁決的一些選項*/
void configureContentNegotiation(ContentNegotiationConfigurer configurer);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章