Configurer vs Customizer

1.XxConfigurer:扩展配置 (additional)
eg:WebMvcConfigurer
2.XxCustomizer:定制配置 (replace)
eg:WebServerFactoryCustomizer


addXxx():表示在原来的基础上添加对应组件
configureXxx():表示添加新的组件并关闭默认的组件
extendXxx():表示添加新的组件保留默认的组件

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

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) {
    }
    //可以通过实现HandlerMethodArgumentResolver接口来实现对自定义的参数进行解析
    default void addArgumentResolvers(List resolvers) {
    }

    default void addReturnValueHandlers(List handlers) {
    }

    default void configureMessageConverters(List> converters) {
    }

    default void extendMessageConverters(List> converters) {
    }

    default void configureHandlerExceptionResolvers(List resolvers) {
    }

    default void extendHandlerExceptionResolvers(List resolvers) {
    }

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

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

注意:可以实现WebMvcConfigurer接口,这个接口的方法都加了jdk1.8的 default修饰方法,不强制实现所有的方法,可以根据实际实现相关的方法(default修饰接口方法,不强制实现所有的方法)

你可能感兴趣的:(Configurer vs Customizer)