public interface WebMvcConfigurer
@EnableWebMvc
.
@EnableWebMvc
-annotated configuration classes may implement
this interface to be called back and given a chance to customize the
default configuration.
Modifier and Type | Method and Description |
---|---|
default void |
addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers)
Add resolvers to support custom controller method argument types.
|
default void |
addCorsMappings(CorsRegistry registry)
Configure "global" cross-origin request processing.
|
default void |
addFormatters(FormatterRegistry registry)
Add
Converters and Formatters in addition to the ones
registered by default. |
default void |
addInterceptors(InterceptorRegistry registry)
Add Spring MVC lifecycle interceptors for pre- and post-processing of
controller method invocations and resource handler requests.
|
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.
|
default void |
addReturnValueHandlers(List<HandlerMethodReturnValueHandler> handlers)
Add handlers to support custom controller method return value types.
|
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.
|
default void |
configureAsyncSupport(AsyncSupportConfigurer configurer)
Configure asynchronous request handling options.
|
default void |
configureContentNegotiation(ContentNegotiationConfigurer configurer)
Configure content negotiation options.
|
default void |
configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer)
Configure a handler to delegate unhandled requests by forwarding to the
Servlet container's "default" servlet.
|
default void |
configureHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers)
Configure exception resolvers.
|
default void |
configureMessageConverters(List<HttpMessageConverter<?>> converters)
Configure the
HttpMessageConverter s for
reading from the request body and for writing to the response body. |
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. |
default void |
configureViewResolvers(ViewResolverRegistry registry)
Configure view resolvers to translate String-based view names returned from
controllers into concrete
View
implementations to perform rendering with. |
default void |
extendHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers)
Extending or modify the list of exception resolvers configured by default.
|
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. |
default MessageCodesResolver |
getMessageCodesResolver()
Provide a custom
MessageCodesResolver for building message codes
from data binding and validation error codes. |
default Validator |
getValidator()
Provide a custom
Validator instead of the one created by default. |
default void configurePathMatch(PathMatchConfigurer configurer)
HandlerMapping
path matching options such as
whether to use parsed PathPatterns
or String pattern matching
with PathMatcher
, whether to match trailing slashes, and more.PathMatchConfigurer
default void configureContentNegotiation(ContentNegotiationConfigurer configurer)
default void configureAsyncSupport(AsyncSupportConfigurer configurer)
default void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer)
DispatcherServlet
is mapped to "/" thus overriding the
Servlet container's default handling of static resources.default void addFormatters(FormatterRegistry registry)
Converters
and Formatters
in addition to the ones
registered by default.default void addInterceptors(InterceptorRegistry registry)
default void addResourceHandlers(ResourceHandlerRegistry registry)
ResourceHandlerRegistry
default void addCorsMappings(CorsRegistry registry)
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.
CorsRegistry
,
CorsConfiguration.combine(CorsConfiguration)
default void addViewControllers(ViewControllerRegistry registry)
ViewControllerRegistry
default void configureViewResolvers(ViewResolverRegistry registry)
View
implementations to perform rendering with.default void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers)
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.
resolvers
- initially an empty listdefault void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> handlers)
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.
handlers
- initially an empty listdefault void configureMessageConverters(List<HttpMessageConverter<?>> converters)
HttpMessageConverter
s 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 use of this method turns off default converter
registration. Alternatively, use
extendMessageConverters(java.util.List)
to modify that default
list of converters.
converters
- initially an empty list of convertersdefault void extendMessageConverters(List<HttpMessageConverter<?>> converters)
configured
or initialized with
a default list.
Note that the order of converter registration is important. Especially
in cases where clients accept MediaType.ALL
the converters configured earlier will be preferred.
converters
- the list of configured converters to be extendeddefault void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> 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.
resolvers
- initially an empty listextendHandlerExceptionResolvers(List)
,
WebMvcConfigurationSupport.addDefaultHandlerExceptionResolvers(List, org.springframework.web.accept.ContentNegotiationManager)
default void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers)
resolvers
- the list of configured resolvers to extendWebMvcConfigurationSupport.addDefaultHandlerExceptionResolvers(List, org.springframework.web.accept.ContentNegotiationManager)
@Nullable default Validator getValidator()
Validator
instead of the one created by default.
The default implementation, assuming JSR-303 is on the classpath, is:
OptionalValidatorFactoryBean
.
Leave the return value as null
to keep the default.@Nullable default MessageCodesResolver getMessageCodesResolver()
MessageCodesResolver
for building message codes
from data binding and validation error codes. Leave the return value as
null
to keep the default.