spring-webmvc

org.springframework.web.servlet.config.annotation
Class WebMvcConfigurationSupport

java.lang.Object
  extended by org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport
All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware, org.springframework.web.context.ServletContextAware
Direct Known Subclasses:
DelegatingWebMvcConfiguration

public class WebMvcConfigurationSupport
extends java.lang.Object
implements org.springframework.context.ApplicationContextAware, org.springframework.web.context.ServletContextAware

This is the main class providing the configuration behind the MVC Java config. It is typically imported by adding @EnableWebMvc to an application @Configuration class. An alternative more advanced option is to extend directly from this class and override methods as necessary remembering to add @Configuration to the subclass and @Bean to overridden @Bean methods. For more details see the Javadoc of @EnableWebMvc.

This class registers the following HandlerMappings:

Registers these HandlerAdapters:

Registers a HandlerExceptionResolverComposite with this chain of exception resolvers:

Both the RequestMappingHandlerAdapter and the ExceptionHandlerExceptionResolver are configured with default instances of the following kind, unless custom instances are provided:

Since:
3.1
Author:
Rossen Stoyanchev
See Also:
EnableWebMvc, WebMvcConfigurer, WebMvcConfigurerAdapter

Constructor Summary
WebMvcConfigurationSupport()
           
 
Method Summary
protected  void addArgumentResolvers(java.util.List<org.springframework.web.method.support.HandlerMethodArgumentResolver> argumentResolvers)
          Add custom HandlerMethodArgumentResolvers to use in addition to the ones registered by default.
protected  void addDefaultHandlerExceptionResolvers(java.util.List<HandlerExceptionResolver> exceptionResolvers)
          A method available to subclasses for adding default HandlerExceptionResolvers.
protected  void addDefaultHttpMessageConverters(java.util.List<org.springframework.http.converter.HttpMessageConverter<?>> messageConverters)
          Adds a set of default HttpMessageConverter instances to the given list.
protected  void addFormatters(org.springframework.format.FormatterRegistry registry)
          Override this method to add custom Converters and Formatters.
protected  void addInterceptors(InterceptorRegistry registry)
          Override this method to add Spring MVC interceptors for pre- and post-processing of controller invocation.
protected  void addResourceHandlers(ResourceHandlerRegistry registry)
          Override this method to add resource handlers for serving static resources.
protected  void addReturnValueHandlers(java.util.List<org.springframework.web.method.support.HandlerMethodReturnValueHandler> returnValueHandlers)
          Add custom HandlerMethodReturnValueHandlers in addition to the ones registered by default.
protected  void addViewControllers(ViewControllerRegistry registry)
          Override this method to add view controllers.
 BeanNameUrlHandlerMapping beanNameHandlerMapping()
          Return a BeanNameUrlHandlerMapping ordered at 2 to map URL paths to controller bean names.
protected  void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer)
          Override this method to configure "default" Servlet handling.
protected  void configureHandlerExceptionResolvers(java.util.List<HandlerExceptionResolver> exceptionResolvers)
          Override this method to configure the list of HandlerExceptionResolvers to use.
protected  void configureMessageConverters(java.util.List<org.springframework.http.converter.HttpMessageConverter<?>> converters)
          Override this method to add custom HttpMessageConverters to use with the RequestMappingHandlerAdapter and the ExceptionHandlerExceptionResolver.
 HandlerMapping defaultServletHandlerMapping()
          Return a handler mapping ordered at Integer.MAX_VALUE with a mapped default servlet handler.
protected  java.lang.Object[] getInterceptors()
          Provide access to the shared handler interceptors used to configure HandlerMapping instances with.
protected  org.springframework.validation.MessageCodesResolver getMessageCodesResolver()
          Override this method to provide a custom MessageCodesResolver.
protected  java.util.List<org.springframework.http.converter.HttpMessageConverter<?>> getMessageConverters()
          Provides access to the shared HttpMessageConverters used by the RequestMappingHandlerAdapter and the ExceptionHandlerExceptionResolver.
protected  org.springframework.validation.Validator getValidator()
          Override this method to provide a custom Validator.
 HandlerExceptionResolver handlerExceptionResolver()
          Returns a HandlerExceptionResolverComposite containing a list of exception resolvers obtained either through configureHandlerExceptionResolvers(List) or through addDefaultHandlerExceptionResolvers(List).
 HttpRequestHandlerAdapter httpRequestHandlerAdapter()
          Returns a HttpRequestHandlerAdapter for processing requests with HttpRequestHandlers.
 org.springframework.format.support.FormattingConversionService mvcConversionService()
          Returns a FormattingConversionService for use with annotated controller methods and the spring:eval JSP tag.
 org.springframework.validation.Validator mvcValidator()
          Returns a global Validator instance for example for validating @ModelAttribute and @RequestBody method arguments.
 RequestMappingHandlerAdapter requestMappingHandlerAdapter()
          Returns a RequestMappingHandlerAdapter for processing requests through annotated controller methods.
 RequestMappingHandlerMapping requestMappingHandlerMapping()
          Return a RequestMappingHandlerMapping ordered at 0 for mapping requests to annotated controllers.
 HandlerMapping resourceHandlerMapping()
          Return a handler mapping ordered at Integer.MAX_VALUE-1 with mapped resource handlers.
 void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
           
 void setServletContext(javax.servlet.ServletContext servletContext)
           
 SimpleControllerHandlerAdapter simpleControllerHandlerAdapter()
          Returns a SimpleControllerHandlerAdapter for processing requests with interface-based controllers.
 HandlerMapping viewControllerHandlerMapping()
          Return a handler mapping ordered at 1 to map URL paths directly to view names.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WebMvcConfigurationSupport

public WebMvcConfigurationSupport()
Method Detail

setServletContext

public void setServletContext(javax.servlet.ServletContext servletContext)
Specified by:
setServletContext in interface org.springframework.web.context.ServletContextAware

setApplicationContext

public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
                           throws org.springframework.beans.BeansException
Specified by:
setApplicationContext in interface org.springframework.context.ApplicationContextAware
Throws:
org.springframework.beans.BeansException

requestMappingHandlerMapping

@Bean
public RequestMappingHandlerMapping requestMappingHandlerMapping()
Return a RequestMappingHandlerMapping ordered at 0 for mapping requests to annotated controllers.


getInterceptors

protected final java.lang.Object[] getInterceptors()
Provide access to the shared handler interceptors used to configure HandlerMapping instances with. This method cannot be overridden, use addInterceptors(InterceptorRegistry) instead.


addInterceptors

protected void addInterceptors(InterceptorRegistry registry)
Override this method to add Spring MVC interceptors for pre- and post-processing of controller invocation.

See Also:
InterceptorRegistry

viewControllerHandlerMapping

@Bean
public HandlerMapping viewControllerHandlerMapping()
Return a handler mapping ordered at 1 to map URL paths directly to view names. To configure view controllers, override addViewControllers(org.springframework.web.servlet.config.annotation.ViewControllerRegistry).


addViewControllers

protected void addViewControllers(ViewControllerRegistry registry)
Override this method to add view controllers.

See Also:
ViewControllerRegistry

beanNameHandlerMapping

@Bean
public BeanNameUrlHandlerMapping beanNameHandlerMapping()
Return a BeanNameUrlHandlerMapping ordered at 2 to map URL paths to controller bean names.


resourceHandlerMapping

@Bean
public HandlerMapping resourceHandlerMapping()
Return a handler mapping ordered at Integer.MAX_VALUE-1 with mapped resource handlers. To configure resource handling, override addResourceHandlers(org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry).


addResourceHandlers

protected void addResourceHandlers(ResourceHandlerRegistry registry)
Override this method to add resource handlers for serving static resources.

See Also:
ResourceHandlerRegistry

defaultServletHandlerMapping

@Bean
public HandlerMapping defaultServletHandlerMapping()
Return a handler mapping ordered at Integer.MAX_VALUE with a mapped default servlet handler. To configure "default" Servlet handling, override configureDefaultServletHandling(org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer).


configureDefaultServletHandling

protected void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer)
Override this method to configure "default" Servlet handling.

See Also:
DefaultServletHandlerConfigurer

requestMappingHandlerAdapter

@Bean
public RequestMappingHandlerAdapter requestMappingHandlerAdapter()
Returns a RequestMappingHandlerAdapter for processing requests through annotated controller methods. Consider overriding one of these other more fine-grained methods:


mvcConversionService

@Bean
public org.springframework.format.support.FormattingConversionService mvcConversionService()
Returns a FormattingConversionService for use with annotated controller methods and the spring:eval JSP tag. Also see addFormatters(org.springframework.format.FormatterRegistry) as an alternative to overriding this method.


mvcValidator

@Bean
public org.springframework.validation.Validator mvcValidator()
Returns a global Validator instance for example for validating @ModelAttribute and @RequestBody method arguments. Delegates to getValidator() first and if that returns null checks the classpath for the presence of a JSR-303 implementations before creating a LocalValidatorFactoryBean.If a JSR-303 implementation is not available, a no-op Validator is returned.


getValidator

protected org.springframework.validation.Validator getValidator()
Override this method to provide a custom Validator.


getMessageCodesResolver

protected org.springframework.validation.MessageCodesResolver getMessageCodesResolver()
Override this method to provide a custom MessageCodesResolver.


addArgumentResolvers

protected void addArgumentResolvers(java.util.List<org.springframework.web.method.support.HandlerMethodArgumentResolver> argumentResolvers)
Add custom HandlerMethodArgumentResolvers to use in addition to the ones registered by default.

Custom argument resolvers are invoked before built-in resolvers except for those that rely on the presence of annotations (e.g. @RequestParameter, @PathVariable, etc.). The latter can be customized by configuring the RequestMappingHandlerAdapter directly.

Parameters:
argumentResolvers - the list of custom converters; initially an empty list.

addReturnValueHandlers

protected void addReturnValueHandlers(java.util.List<org.springframework.web.method.support.HandlerMethodReturnValueHandler> returnValueHandlers)
Add custom HandlerMethodReturnValueHandlers in addition to the ones registered by default.

Custom return value handlers are invoked before built-in ones except for those that rely on the presence of annotations (e.g. @ResponseBody, @ModelAttribute, etc.). The latter can be customized by configuring the RequestMappingHandlerAdapter directly.

Parameters:
returnValueHandlers - the list of custom handlers; initially an empty list.

getMessageConverters

protected final java.util.List<org.springframework.http.converter.HttpMessageConverter<?>> getMessageConverters()
Provides access to the shared HttpMessageConverters used by the RequestMappingHandlerAdapter and the ExceptionHandlerExceptionResolver. This method cannot be overridden. Use configureMessageConverters(List) instead. Also see addDefaultHttpMessageConverters(List) that can be used to add default message converters.


configureMessageConverters

protected void configureMessageConverters(java.util.List<org.springframework.http.converter.HttpMessageConverter<?>> converters)
Override this method to add custom HttpMessageConverters to use with the RequestMappingHandlerAdapter and the ExceptionHandlerExceptionResolver. Adding converters to the list turns off the default converters that would otherwise be registered by default. Also see addDefaultHttpMessageConverters(List) that can be used to add default message converters.

Parameters:
converters - a list to add message converters to; initially an empty list.

addDefaultHttpMessageConverters

protected final void addDefaultHttpMessageConverters(java.util.List<org.springframework.http.converter.HttpMessageConverter<?>> messageConverters)
Adds a set of default HttpMessageConverter instances to the given list. Subclasses can call this method from configureMessageConverters(List).

Parameters:
messageConverters - the list to add the default message converters to

addFormatters

protected void addFormatters(org.springframework.format.FormatterRegistry registry)
Override this method to add custom Converters and Formatters.


httpRequestHandlerAdapter

@Bean
public HttpRequestHandlerAdapter httpRequestHandlerAdapter()
Returns a HttpRequestHandlerAdapter for processing requests with HttpRequestHandlers.


simpleControllerHandlerAdapter

@Bean
public SimpleControllerHandlerAdapter simpleControllerHandlerAdapter()
Returns a SimpleControllerHandlerAdapter for processing requests with interface-based controllers.


handlerExceptionResolver

@Bean
public HandlerExceptionResolver handlerExceptionResolver()
Returns a HandlerExceptionResolverComposite containing a list of exception resolvers obtained either through configureHandlerExceptionResolvers(List) or through addDefaultHandlerExceptionResolvers(List).

Note: This method cannot be made final due to CGLib constraints. Rather than overriding it, consider overriding configureHandlerExceptionResolvers(List), which allows providing a list of resolvers.


configureHandlerExceptionResolvers

protected void configureHandlerExceptionResolvers(java.util.List<HandlerExceptionResolver> exceptionResolvers)
Override this method to configure the list of HandlerExceptionResolvers to use. Adding resolvers to the list turns off the default resolvers that would otherwise be registered by default. Also see addDefaultHandlerExceptionResolvers(List) that can be used to add the default exception resolvers.

Parameters:
exceptionResolvers - a list to add exception resolvers to; initially an empty list.

addDefaultHandlerExceptionResolvers

protected final void addDefaultHandlerExceptionResolvers(java.util.List<HandlerExceptionResolver> exceptionResolvers)
A method available to subclasses for adding default HandlerExceptionResolvers.

Adds the following exception resolvers:


spring-webmvc