Top Description Methods
org.springframework.web.servlet.config.annotation

public Interface WebMvcConfigurer

Known Direct Implementers
org.springframework.web.servlet.config.annotation.WebMvcConfigurerComposite
Imports
java.util.List, org.springframework.core.convert.converter.Converter, org.springframework.format.Formatter, .FormatterRegistry, org.springframework.http.converter.HttpMessageConverter, org.springframework.lang.Nullable, org.springframework.validation.MessageCodesResolver, .Validator, org.springframework.web.cors.CorsConfiguration, org.springframework.web.method.support.HandlerMethodArgumentResolver, .HandlerMethodReturnValueHandler, org.springframework.web.servlet.DispatcherServlet, .HandlerExceptionResolver, .HandlerMapping, org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter

Defines callback methods to customize the Java-based configuration for Spring MVC enabled via @EnableWebMvc.

@EnableWebMvc-annotated configuration classes may implement this interface to be called back and given a chance to customize the default configuration.

Authors
Rossen Stoyanchev, Keith Donald, David Syer
Since
3.1

Method Summary

Modifier and TypeMethod and Description
public default void
addArgumentResolvers(List<HandlerMethodArgumentResolver>
initially an empty list
resolvers
)

Add resolvers to support custom controller method argument types.

public default void
addCorsMappings(CorsRegistry registry)

Configure "global" cross-origin request processing.

public default void
addFormatters(FormatterRegistry registry)

Add Converters and Formatters in addition to the ones registered by default.

public default void
addInterceptors(InterceptorRegistry registry)

Add Spring MVC lifecycle interceptors for pre- and post-processing of controller method invocations and resource handler requests.

public default void
addResourceHandlers(ResourceHandlerRegistry registry)

Add handlers to serve static resources such as images, js, and, css files from specific locations under web application root, the classpath, and others.

public default void
addReturnValueHandlers(List<HandlerMethodReturnValueHandler>
initially an empty list
handlers
)

Add handlers to support custom controller method return value types.

public default void
addViewControllers(ViewControllerRegistry registry)

Configure simple automated controllers pre-configured with the response status code and/or a view to render the response body.

public default void
configureAsyncSupport(AsyncSupportConfigurer configurer)

Configure asynchronous request handling options.

public default void
configureContentNegotiation(ContentNegotiationConfigurer configurer)

Configure content negotiation options.

public default void
configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer)

Configure a handler to delegate unhandled requests by forwarding to the Servlet container's "default" servlet.

public default void
configureHandlerExceptionResolvers(List<HandlerExceptionResolver>
initially an empty list
resolvers
)

Configure exception resolvers.

public default void
configureMessageConverters(List<HttpMessageConverter<?>>
initially an empty list of converters
converters
)

Configure the HttpMessageConverters for reading from the request body and for writing to the response body.

public default void
configurePathMatch(PathMatchConfigurer configurer)

Help with configuring HandlerMapping path matching options such as whether to use parsed PathPatterns or String pattern matching with PathMatcher, whether to match trailing slashes, and more.

public default void
configureViewResolvers(ViewResolverRegistry registry)

Configure view resolvers to translate String-based view names returned from controllers into concrete org.springframework.web.servlet.View implementations to perform rendering with.

public default void
extendHandlerExceptionResolvers(List<HandlerExceptionResolver>
the list of configured resolvers to extend
resolvers
)

Extending or modify the list of exception resolvers configured by default.

public default void
extendMessageConverters(List<HttpMessageConverter<?>>
the list of configured converters to be extended
converters
)

Extend or modify the list of converters after it has been, either configured or initialized with a default list.

public default MessageCodesResolver
getMessageCodesResolver()

Provide a custom MessageCodesResolver for building message codes from data binding and validation error codes.

public default Validator
getValidator()

Provide a custom Validator instead of the one created by default.

Method Detail

addArgumentResolversback to summary
public default void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers)

Add resolvers to support custom controller method argument types.

This does not override the built-in support for resolving handler method arguments. To customize the built-in support for argument resolution, configure RequestMappingHandlerAdapter directly.

Parameters
resolvers:List<HandlerMethodArgumentResolver>

initially an empty list

addCorsMappingsback to summary
public default void addCorsMappings(CorsRegistry registry)

Configure "global" cross-origin request processing. The configured CORS mappings apply to annotated controllers, functional endpoints, and static resources.

Annotated controllers can further declare more fine-grained config via @CrossOrigin. In such cases "global" CORS configuration declared here is combined with local CORS configuration defined on a controller method.

Since
4.2
See Also
CorsRegistry, CorsConfiguration#combine(CorsConfiguration)
addFormattersback to summary
public default void addFormatters(FormatterRegistry registry)

Add Converters and Formatters in addition to the ones registered by default.

addInterceptorsback to summary
public default void addInterceptors(InterceptorRegistry registry)

Add Spring MVC lifecycle interceptors for pre- and post-processing of controller method invocations and resource handler requests. Interceptors can be registered to apply to all requests or be limited to a subset of URL patterns.

addResourceHandlersback to summary
public default void addResourceHandlers(ResourceHandlerRegistry registry)

Add handlers to serve static resources such as images, js, and, css files from specific locations under web application root, the classpath, and others.

See Also
ResourceHandlerRegistry
addReturnValueHandlersback to summary
public default void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> handlers)

Add handlers to support custom controller method return value types.

Using this option does not override the built-in support for handling return values. To customize the built-in support for handling return values, configure RequestMappingHandlerAdapter directly.

Parameters
handlers:List<HandlerMethodReturnValueHandler>

initially an empty list

addViewControllersback to summary
public default void addViewControllers(ViewControllerRegistry registry)

Configure simple automated controllers pre-configured with the response status code and/or a view to render the response body. This is useful in cases where there is no need for custom controller logic -- e.g. render a home page, perform simple site URL redirects, return a 404 status with HTML content, a 204 with no content, and more.

See Also
ViewControllerRegistry
configureAsyncSupportback to summary
public default void configureAsyncSupport(AsyncSupportConfigurer configurer)

Configure asynchronous request handling options.

configureContentNegotiationback to summary
public default void configureContentNegotiation(ContentNegotiationConfigurer configurer)

Configure content negotiation options.

configureDefaultServletHandlingback to summary
public default void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer)

Configure a handler to delegate unhandled requests by forwarding to the Servlet container's "default" servlet. A common use case for this is when the DispatcherServlet is mapped to "/" thus overriding the Servlet container's default handling of static resources.

configureHandlerExceptionResolversback to summary
public default void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers)

Configure exception resolvers.

The given list starts out empty. If it is left empty, the framework configures a default set of resolvers, see WebMvcConfigurationSupport#addDefaultHandlerExceptionResolvers(List, org.springframework.web.accept.ContentNegotiationManager). Or if any exception resolvers are added to the list, then the application effectively takes over and must provide, fully initialized, exception resolvers.

Alternatively you can use extendHandlerExceptionResolvers(List) which allows you to extend or modify the list of exception resolvers configured by default.

Parameters
resolvers:List<HandlerExceptionResolver>

initially an empty list

See Also
extendHandlerExceptionResolvers(List), WebMvcConfigurationSupport#addDefaultHandlerExceptionResolvers(List, org.springframework.web.accept.ContentNegotiationManager)
configureMessageConvertersback to summary
public default void configureMessageConverters(List<HttpMessageConverter<?>> converters)

Configure the HttpMessageConverters for reading from the request body and for writing to the response body.

By default, all built-in converters are configured as long as the corresponding 3rd party libraries such Jackson JSON, JAXB2, and others are present on the classpath.

Note that use of this method turns off default converter registration. However, in a Spring Boot application the WebMvcAutoConfiguration adds any HttpMessageConverter beans as well as default converters. Hence, in a Boot application use HttpMessageConverters. Alternatively, for any scenario, use extendMessageConverters(java.util.List) to modify the configured list of message converters.

Parameters
converters:List<HttpMessageConverter<?>>

initially an empty list of converters

configurePathMatchback to summary
public default void configurePathMatch(PathMatchConfigurer configurer)

Help with configuring HandlerMapping path matching options such as whether to use parsed PathPatterns or String pattern matching with PathMatcher, whether to match trailing slashes, and more.

Since
4.0.3
See Also
PathMatchConfigurer
configureViewResolversback to summary
public default void configureViewResolvers(ViewResolverRegistry registry)

Configure view resolvers to translate String-based view names returned from controllers into concrete org.springframework.web.servlet.View implementations to perform rendering with.

Since
4.1
extendHandlerExceptionResolversback to summary
public default void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers)

Extending or modify the list of exception resolvers configured by default. This can be useful for inserting a custom exception resolver without interfering with default ones.

Parameters
resolvers:List<HandlerExceptionResolver>

the list of configured resolvers to extend

Since
4.3
See Also
WebMvcConfigurationSupport#addDefaultHandlerExceptionResolvers(List, org.springframework.web.accept.ContentNegotiationManager)
extendMessageConvertersback to summary
public default void extendMessageConverters(List<HttpMessageConverter<?>> converters)

Extend or modify the list of converters after it has been, either configured or initialized with a default list.

Note that the order of converter registration is important. Especially in cases where clients accept org.springframework.http.MediaType#ALL the converters configured earlier will be preferred.

Parameters
converters:List<HttpMessageConverter<?>>

the list of configured converters to be extended

Since
4.1.3
getMessageCodesResolverback to summary
public default MessageCodesResolver getMessageCodesResolver()

Provide a custom MessageCodesResolver for building message codes from data binding and validation error codes. Leave the return value as null to keep the default.

Annotations
@Nullable
getValidatorback to summary
public default Validator getValidator()

Provide a custom Validator instead of the one created by default. The default implementation, assuming JSR-303 is on the classpath, is: org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean. Leave the return value as null to keep the default.

Annotations
@Nullable