Class WebMvcConfigurationSupport
- java.lang.Object
- org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport
- All Implemented Interfaces:
Aware
,ApplicationContextAware
,ServletContextAware
- Direct Known Subclasses:
DelegatingWebMvcConfiguration
public class WebMvcConfigurationSupport extends Object implements ApplicationContextAware, 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
:RequestMappingHandlerMapping
ordered at 0 for mapping requests to annotated controller methods.HandlerMapping
ordered at 1 to map URL paths directly to view names.BeanNameUrlHandlerMapping
ordered at 2 to map URL paths to controller bean names.HandlerMapping
ordered atInteger.MAX_VALUE-1
to serve static resource requests.HandlerMapping
ordered atInteger.MAX_VALUE
to forward requests to the default servlet.
Registers these
HandlerAdapters
:RequestMappingHandlerAdapter
for processing requests with annotated controller methods.HttpRequestHandlerAdapter
for processing requests withHttpRequestHandlers
.SimpleControllerHandlerAdapter
for processing requests with interface-basedControllers
.
Registers a
HandlerExceptionResolverComposite
with this chain of exception resolvers:ExceptionHandlerExceptionResolver
for handling exceptions throughExceptionHandler
methods.ResponseStatusExceptionResolver
for exceptions annotated withResponseStatus
.DefaultHandlerExceptionResolver
for resolving known Spring exception types
Registers an
AntPathMatcher
and aUrlPathHelper
to be used by:- the
RequestMappingHandlerMapping
, - the
HandlerMapping
for ViewControllers - and the
HandlerMapping
for serving resources
PathMatchConfigurer
.Both the
RequestMappingHandlerAdapter
and theExceptionHandlerExceptionResolver
are configured with default instances of the following by default:- a
ContentNegotiationManager
- a
DefaultFormattingConversionService
- an
OptionalValidatorFactoryBean
if a JSR-303 implementation is available on the classpath - a range of
HttpMessageConverters
depending on the third-party libraries available on the classpath.
- Since:
- 3.1
- Author:
- Rossen Stoyanchev, Brian Clozel, Sebastien Deleuze
- See Also:
EnableWebMvc
,WebMvcConfigurer
Constructor Summary
Constructors Constructor Description WebMvcConfigurationSupport()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers)
Add customHandlerMethodArgumentResolvers
to use in addition to the ones registered by default.protected void
addCorsMappings(CorsRegistry registry)
Override this method to configure cross origin requests processing.protected void
addDefaultHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers, ContentNegotiationManager mvcContentNegotiationManager)
A method available to subclasses for adding defaultHandlerExceptionResolvers
.protected void
addDefaultHttpMessageConverters(List<HttpMessageConverter<?>> messageConverters)
Adds a set of default HttpMessageConverter instances to the given list.protected void
addFormatters(FormatterRegistry registry)
Override this method to add customConverter
and/orFormatter
delegates to the commonFormattingConversionService
.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(List<HandlerMethodReturnValueHandler> returnValueHandlers)
Add customHandlerMethodReturnValueHandlers
in addition to the ones registered by default.protected void
addViewControllers(ViewControllerRegistry registry)
Override this method to add view controllers.BeanNameUrlHandlerMapping
beanNameHandlerMapping(FormattingConversionService conversionService, ResourceUrlProvider resourceUrlProvider)
Return aBeanNameUrlHandlerMapping
ordered at 2 to map URL paths to controller bean names.protected void
configureAsyncSupport(AsyncSupportConfigurer configurer)
Override this method to configure asynchronous request processing options.protected void
configureContentNegotiation(ContentNegotiationConfigurer configurer)
Override this method to configure content negotiation.protected void
configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer)
Override this method to configure "default" Servlet handling.protected void
configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers)
Override this method to configure the list ofHandlerExceptionResolvers
to use.protected void
configureMessageConverters(List<HttpMessageConverter<?>> converters)
Override this method to add customHttpMessageConverters
to use with theRequestMappingHandlerAdapter
and theExceptionHandlerExceptionResolver
.protected void
configurePathMatch(PathMatchConfigurer configurer)
Override this method to configure path matching options.protected void
configureViewResolvers(ViewResolverRegistry registry)
Override this method to configure view resolution.protected ExceptionHandlerExceptionResolver
createExceptionHandlerExceptionResolver()
Protected method for plugging in a custom subclass ofExceptionHandlerExceptionResolver
.protected RequestMappingHandlerAdapter
createRequestMappingHandlerAdapter()
Protected method for plugging in a custom subclass ofRequestMappingHandlerAdapter
.protected RequestMappingHandlerMapping
createRequestMappingHandlerMapping()
Protected method for plugging in a custom subclass ofRequestMappingHandlerMapping
.HandlerMapping
defaultServletHandlerMapping()
Return a handler mapping ordered at Integer.MAX_VALUE with a mapped default servlet handler.protected void
extendHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers)
Override this method to extend or modify the list ofHandlerExceptionResolvers
after it has been configured.protected void
extendMessageConverters(List<HttpMessageConverter<?>> converters)
Override this method to extend or modify the list of converters after it has been configured.ApplicationContext
getApplicationContext()
Return the associated SpringApplicationContext
.protected List<HandlerMethodArgumentResolver>
getArgumentResolvers()
Provide access to the shared custom argument resolvers used by theRequestMappingHandlerAdapter
and theExceptionHandlerExceptionResolver
.protected ConfigurableWebBindingInitializer
getConfigurableWebBindingInitializer(FormattingConversionService mvcConversionService, Validator mvcValidator)
Return theConfigurableWebBindingInitializer
to use for initializing allWebDataBinder
instances.protected Map<String,CorsConfiguration>
getCorsConfigurations()
Return the registeredCorsConfiguration
objects, keyed by path pattern.protected Map<String,MediaType>
getDefaultMediaTypes()
protected Object[]
getInterceptors(FormattingConversionService mvcConversionService, ResourceUrlProvider mvcResourceUrlProvider)
Provide access to the shared handler interceptors used to configureHandlerMapping
instances with.protected MessageCodesResolver
getMessageCodesResolver()
Override this method to provide a customMessageCodesResolver
.protected List<HttpMessageConverter<?>>
getMessageConverters()
Provides access to the sharedHttpMessageConverters
used by theRequestMappingHandlerAdapter
and theExceptionHandlerExceptionResolver
.protected PathMatchConfigurer
getPathMatchConfigurer()
Callback for building thePathMatchConfigurer
.protected List<HandlerMethodReturnValueHandler>
getReturnValueHandlers()
Provide access to the shared return value handlers used by theRequestMappingHandlerAdapter
and theExceptionHandlerExceptionResolver
.ServletContext
getServletContext()
Return the associatedServletContext
.protected Validator
getValidator()
Override this method to provide a customValidator
.HandlerExceptionResolver
handlerExceptionResolver(ContentNegotiationManager contentNegotiationManager)
Returns aHandlerExceptionResolverComposite
containing a list of exception resolvers obtained either throughconfigureHandlerExceptionResolvers(java.util.List<org.springframework.web.servlet.HandlerExceptionResolver>)
or throughaddDefaultHandlerExceptionResolvers(java.util.List<org.springframework.web.servlet.HandlerExceptionResolver>, org.springframework.web.accept.ContentNegotiationManager)
.HandlerFunctionAdapter
handlerFunctionAdapter()
Returns aHandlerFunctionAdapter
for processing requests through handler functions.HttpRequestHandlerAdapter
httpRequestHandlerAdapter()
Returns aHttpRequestHandlerAdapter
for processing requests withHttpRequestHandlers
.ContentNegotiationManager
mvcContentNegotiationManager()
Return aContentNegotiationManager
instance to use to determine requested media types in a given request.FormattingConversionService
mvcConversionService()
Return aFormattingConversionService
for use with annotated controllers.HandlerMappingIntrospector
mvcHandlerMappingIntrospector()
PathMatcher
mvcPathMatcher()
Return a globalPathMatcher
instance for path matching patterns inHandlerMappings
.ResourceUrlProvider
mvcResourceUrlProvider()
AResourceUrlProvider
bean for use with the MVC dispatcher.CompositeUriComponentsContributor
mvcUriComponentsContributor(FormattingConversionService conversionService, RequestMappingHandlerAdapter requestMappingHandlerAdapter)
Return an instance ofCompositeUriComponentsContributor
for use withMvcUriComponentsBuilder
.UrlPathHelper
mvcUrlPathHelper()
Return a globalUrlPathHelper
instance for path matching patterns inHandlerMappings
.Validator
mvcValidator()
Return a globalValidator
instance for example for validating@ModelAttribute
and@RequestBody
method arguments.ViewResolver
mvcViewResolver(ContentNegotiationManager contentNegotiationManager)
Register aViewResolverComposite
that contains a chain of view resolvers to use for view resolution.RequestMappingHandlerAdapter
requestMappingHandlerAdapter(ContentNegotiationManager contentNegotiationManager, FormattingConversionService conversionService, Validator validator)
Returns aRequestMappingHandlerAdapter
for processing requests through annotated controller methods.RequestMappingHandlerMapping
requestMappingHandlerMapping(ContentNegotiationManager contentNegotiationManager, FormattingConversionService conversionService, ResourceUrlProvider resourceUrlProvider)
Return aRequestMappingHandlerMapping
ordered at 0 for mapping requests to annotated controllers.HandlerMapping
resourceHandlerMapping(UrlPathHelper urlPathHelper, PathMatcher pathMatcher, ContentNegotiationManager contentNegotiationManager, FormattingConversionService conversionService, ResourceUrlProvider resourceUrlProvider)
Return a handler mapping ordered at Integer.MAX_VALUE-1 with mapped resource handlers.RouterFunctionMapping
routerFunctionMapping(FormattingConversionService conversionService, ResourceUrlProvider resourceUrlProvider)
Return aRouterFunctionMapping
ordered at 3 to map router functions.void
setApplicationContext(ApplicationContext applicationContext)
Set the SpringApplicationContext
, e.g.void
setServletContext(ServletContext servletContext)
Set theServletContext
, e.g.SimpleControllerHandlerAdapter
simpleControllerHandlerAdapter()
Returns aSimpleControllerHandlerAdapter
for processing requests with interface-based controllers.HandlerMapping
viewControllerHandlerMapping(PathMatcher pathMatcher, UrlPathHelper urlPathHelper, FormattingConversionService conversionService, ResourceUrlProvider resourceUrlProvider)
Return a handler mapping ordered at 1 to map URL paths directly to view names.
Constructor Detail
WebMvcConfigurationSupport
public WebMvcConfigurationSupport()
Method Detail
setApplicationContext
public void setApplicationContext(@Nullable ApplicationContext applicationContext)
Set the SpringApplicationContext
, e.g. for resource loading.- Specified by:
setApplicationContext
in interfaceApplicationContextAware
- Parameters:
applicationContext
- the ApplicationContext object to be used by this object- See Also:
BeanInitializationException
getApplicationContext
@Nullable public final ApplicationContext getApplicationContext()
Return the associated SpringApplicationContext
.- Since:
- 4.2
setServletContext
public void setServletContext(@Nullable ServletContext servletContext)
Set theServletContext
, e.g. for resource handling, looking up file extensions, etc.- Specified by:
setServletContext
in interfaceServletContextAware
- Parameters:
servletContext
- the ServletContext object to be used by this object- See Also:
InitializingBean.afterPropertiesSet()
,ApplicationContextAware.setApplicationContext(org.springframework.context.ApplicationContext)
getServletContext
@Nullable public final ServletContext getServletContext()
Return the associatedServletContext
.- Since:
- 4.2
requestMappingHandlerMapping
@Bean public RequestMappingHandlerMapping requestMappingHandlerMapping(@Qualifier("mvcContentNegotiationManager") ContentNegotiationManager contentNegotiationManager, @Qualifier("mvcConversionService") FormattingConversionService conversionService, @Qualifier("mvcResourceUrlProvider") ResourceUrlProvider resourceUrlProvider)
Return aRequestMappingHandlerMapping
ordered at 0 for mapping requests to annotated controllers.
createRequestMappingHandlerMapping
protected RequestMappingHandlerMapping createRequestMappingHandlerMapping()
Protected method for plugging in a custom subclass ofRequestMappingHandlerMapping
.- Since:
- 4.0
getInterceptors
protected final Object[] getInterceptors(FormattingConversionService mvcConversionService, ResourceUrlProvider mvcResourceUrlProvider)
Provide access to the shared handler interceptors used to configureHandlerMapping
instances with.This method cannot be overridden; use
addInterceptors(org.springframework.web.servlet.config.annotation.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
getPathMatchConfigurer
protected PathMatchConfigurer getPathMatchConfigurer()
Callback for building thePathMatchConfigurer
. Delegates toconfigurePathMatch(org.springframework.web.servlet.config.annotation.PathMatchConfigurer)
.- Since:
- 4.1
configurePathMatch
protected void configurePathMatch(PathMatchConfigurer configurer)
Override this method to configure path matching options.- Since:
- 4.0.3
- See Also:
PathMatchConfigurer
mvcPathMatcher
@Bean public PathMatcher mvcPathMatcher()
Return a globalPathMatcher
instance for path matching patterns inHandlerMappings
. This instance can be configured using thePathMatchConfigurer
inconfigurePathMatch(PathMatchConfigurer)
.- Since:
- 4.1
mvcUrlPathHelper
@Bean public UrlPathHelper mvcUrlPathHelper()
Return a globalUrlPathHelper
instance for path matching patterns inHandlerMappings
. This instance can be configured using thePathMatchConfigurer
inconfigurePathMatch(PathMatchConfigurer)
.- Since:
- 4.1
mvcContentNegotiationManager
@Bean public ContentNegotiationManager mvcContentNegotiationManager()
Return aContentNegotiationManager
instance to use to determine requested media types in a given request.
getDefaultMediaTypes
protected Map<String,MediaType> getDefaultMediaTypes()
configureContentNegotiation
protected void configureContentNegotiation(ContentNegotiationConfigurer configurer)
Override this method to configure content negotiation.- See Also:
DefaultServletHandlerConfigurer
viewControllerHandlerMapping
@Bean @Nullable public HandlerMapping viewControllerHandlerMapping(@Qualifier("mvcPathMatcher") PathMatcher pathMatcher, @Qualifier("mvcUrlPathHelper") UrlPathHelper urlPathHelper, @Qualifier("mvcConversionService") FormattingConversionService conversionService, @Qualifier("mvcResourceUrlProvider") ResourceUrlProvider resourceUrlProvider)
Return a handler mapping ordered at 1 to map URL paths directly to view names. To configure view controllers, overrideaddViewControllers(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(@Qualifier("mvcConversionService") FormattingConversionService conversionService, @Qualifier("mvcResourceUrlProvider") ResourceUrlProvider resourceUrlProvider)
Return aBeanNameUrlHandlerMapping
ordered at 2 to map URL paths to controller bean names.
routerFunctionMapping
@Bean public RouterFunctionMapping routerFunctionMapping(@Qualifier("mvcConversionService") FormattingConversionService conversionService, @Qualifier("mvcResourceUrlProvider") ResourceUrlProvider resourceUrlProvider)
Return aRouterFunctionMapping
ordered at 3 to map router functions. Consider overriding one of these other more fine-grained methods:addInterceptors(org.springframework.web.servlet.config.annotation.InterceptorRegistry)
for adding handler interceptors.addCorsMappings(org.springframework.web.servlet.config.annotation.CorsRegistry)
to configure cross origin requests processing.configureMessageConverters(java.util.List<org.springframework.http.converter.HttpMessageConverter<?>>)
for adding custom message converters.
- Since:
- 5.2
resourceHandlerMapping
@Bean @Nullable public HandlerMapping resourceHandlerMapping(@Qualifier("mvcUrlPathHelper") UrlPathHelper urlPathHelper, @Qualifier("mvcPathMatcher") PathMatcher pathMatcher, @Qualifier("mvcContentNegotiationManager") ContentNegotiationManager contentNegotiationManager, @Qualifier("mvcConversionService") FormattingConversionService conversionService, @Qualifier("mvcResourceUrlProvider") ResourceUrlProvider resourceUrlProvider)
Return a handler mapping ordered at Integer.MAX_VALUE-1 with mapped resource handlers. To configure resource handling, overrideaddResourceHandlers(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
mvcResourceUrlProvider
@Bean public ResourceUrlProvider mvcResourceUrlProvider()
AResourceUrlProvider
bean for use with the MVC dispatcher.- Since:
- 4.1
defaultServletHandlerMapping
@Bean @Nullable public HandlerMapping defaultServletHandlerMapping()
Return a handler mapping ordered at Integer.MAX_VALUE with a mapped default servlet handler. To configure "default" Servlet handling, overrideconfigureDefaultServletHandling(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(@Qualifier("mvcContentNegotiationManager") ContentNegotiationManager contentNegotiationManager, @Qualifier("mvcConversionService") FormattingConversionService conversionService, @Qualifier("mvcValidator") Validator validator)
Returns aRequestMappingHandlerAdapter
for processing requests through annotated controller methods. Consider overriding one of these other more fine-grained methods:addArgumentResolvers(java.util.List<org.springframework.web.method.support.HandlerMethodArgumentResolver>)
for adding custom argument resolvers.addReturnValueHandlers(java.util.List<org.springframework.web.method.support.HandlerMethodReturnValueHandler>)
for adding custom return value handlers.configureMessageConverters(java.util.List<org.springframework.http.converter.HttpMessageConverter<?>>)
for adding custom message converters.
createRequestMappingHandlerAdapter
protected RequestMappingHandlerAdapter createRequestMappingHandlerAdapter()
Protected method for plugging in a custom subclass ofRequestMappingHandlerAdapter
.- Since:
- 4.3
handlerFunctionAdapter
@Bean public HandlerFunctionAdapter handlerFunctionAdapter()
Returns aHandlerFunctionAdapter
for processing requests through handler functions.- Since:
- 5.2
getConfigurableWebBindingInitializer
protected ConfigurableWebBindingInitializer getConfigurableWebBindingInitializer(FormattingConversionService mvcConversionService, Validator mvcValidator)
Return theConfigurableWebBindingInitializer
to use for initializing allWebDataBinder
instances.
getMessageCodesResolver
@Nullable protected MessageCodesResolver getMessageCodesResolver()
Override this method to provide a customMessageCodesResolver
.
configureAsyncSupport
protected void configureAsyncSupport(AsyncSupportConfigurer configurer)
Override this method to configure asynchronous request processing options.- See Also:
AsyncSupportConfigurer
mvcConversionService
@Bean public FormattingConversionService mvcConversionService()
Return aFormattingConversionService
for use with annotated controllers.See
addFormatters(org.springframework.format.FormatterRegistry)
as an alternative to overriding this method.
addFormatters
protected void addFormatters(FormatterRegistry registry)
Override this method to add customConverter
and/orFormatter
delegates to the commonFormattingConversionService
.- See Also:
mvcConversionService()
mvcValidator
@Bean public Validator mvcValidator()
Return a globalValidator
instance for example for validating@ModelAttribute
and@RequestBody
method arguments. Delegates togetValidator()
first and if that returnsnull
checks the classpath for the presence of a JSR-303 implementations before creating aOptionalValidatorFactoryBean
.If a JSR-303 implementation is not available, a no-opValidator
is returned.
getValidator
@Nullable protected Validator getValidator()
Override this method to provide a customValidator
.
getArgumentResolvers
protected final List<HandlerMethodArgumentResolver> getArgumentResolvers()
Provide access to the shared custom argument resolvers used by theRequestMappingHandlerAdapter
and theExceptionHandlerExceptionResolver
.This method cannot be overridden; use
addArgumentResolvers(java.util.List<org.springframework.web.method.support.HandlerMethodArgumentResolver>)
instead.- Since:
- 4.3
addArgumentResolvers
protected void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers)
Add customHandlerMethodArgumentResolvers
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 theRequestMappingHandlerAdapter
directly.- Parameters:
argumentResolvers
- the list of custom converters (initially an empty list)
getReturnValueHandlers
protected final List<HandlerMethodReturnValueHandler> getReturnValueHandlers()
Provide access to the shared return value handlers used by theRequestMappingHandlerAdapter
and theExceptionHandlerExceptionResolver
.This method cannot be overridden; use
addReturnValueHandlers(java.util.List<org.springframework.web.method.support.HandlerMethodReturnValueHandler>)
instead.- Since:
- 4.3
addReturnValueHandlers
protected void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers)
Add customHandlerMethodReturnValueHandlers
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 theRequestMappingHandlerAdapter
directly.- Parameters:
returnValueHandlers
- the list of custom handlers (initially an empty list)
getMessageConverters
protected final List<HttpMessageConverter<?>> getMessageConverters()
Provides access to the sharedHttpMessageConverters
used by theRequestMappingHandlerAdapter
and theExceptionHandlerExceptionResolver
.This method cannot be overridden; use
configureMessageConverters(java.util.List<org.springframework.http.converter.HttpMessageConverter<?>>)
instead. Also seeaddDefaultHttpMessageConverters(java.util.List<org.springframework.http.converter.HttpMessageConverter<?>>)
for adding default message converters.
configureMessageConverters
protected void configureMessageConverters(List<HttpMessageConverter<?>> converters)
Override this method to add customHttpMessageConverters
to use with theRequestMappingHandlerAdapter
and theExceptionHandlerExceptionResolver
.Adding converters to the list turns off the default converters that would otherwise be registered by default. Also see
addDefaultHttpMessageConverters(java.util.List<org.springframework.http.converter.HttpMessageConverter<?>>)
for adding default message converters.- Parameters:
converters
- a list to add message converters to (initially an empty list)
extendMessageConverters
protected void extendMessageConverters(List<HttpMessageConverter<?>> converters)
Override this method to extend or modify the list of converters after it has been configured. This may be useful for example to allow default converters to be registered and then insert a custom converter through this method.- Parameters:
converters
- the list of configured converters to extend- Since:
- 4.1.3
addDefaultHttpMessageConverters
protected final void addDefaultHttpMessageConverters(List<HttpMessageConverter<?>> messageConverters)
Adds a set of default HttpMessageConverter instances to the given list. Subclasses can call this method fromconfigureMessageConverters(java.util.List<org.springframework.http.converter.HttpMessageConverter<?>>)
.- Parameters:
messageConverters
- the list to add the default message converters to
mvcUriComponentsContributor
@Bean public CompositeUriComponentsContributor mvcUriComponentsContributor(@Qualifier("mvcConversionService") FormattingConversionService conversionService, @Qualifier("requestMappingHandlerAdapter") RequestMappingHandlerAdapter requestMappingHandlerAdapter)
Return an instance ofCompositeUriComponentsContributor
for use withMvcUriComponentsBuilder
.- Since:
- 4.0
httpRequestHandlerAdapter
@Bean public HttpRequestHandlerAdapter httpRequestHandlerAdapter()
Returns aHttpRequestHandlerAdapter
for processing requests withHttpRequestHandlers
.
simpleControllerHandlerAdapter
@Bean public SimpleControllerHandlerAdapter simpleControllerHandlerAdapter()
Returns aSimpleControllerHandlerAdapter
for processing requests with interface-based controllers.
handlerExceptionResolver
@Bean public HandlerExceptionResolver handlerExceptionResolver(@Qualifier("mvcContentNegotiationManager") ContentNegotiationManager contentNegotiationManager)
Returns aHandlerExceptionResolverComposite
containing a list of exception resolvers obtained either throughconfigureHandlerExceptionResolvers(java.util.List<org.springframework.web.servlet.HandlerExceptionResolver>)
or throughaddDefaultHandlerExceptionResolvers(java.util.List<org.springframework.web.servlet.HandlerExceptionResolver>, org.springframework.web.accept.ContentNegotiationManager)
.Note: This method cannot be made final due to CGLIB constraints. Rather than overriding it, consider overriding
configureHandlerExceptionResolvers(java.util.List<org.springframework.web.servlet.HandlerExceptionResolver>)
which allows for providing a list of resolvers.
configureHandlerExceptionResolvers
protected void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers)
Override this method to configure the list ofHandlerExceptionResolvers
to use.Adding resolvers to the list turns off the default resolvers that would otherwise be registered by default. Also see
addDefaultHandlerExceptionResolvers(java.util.List<org.springframework.web.servlet.HandlerExceptionResolver>, org.springframework.web.accept.ContentNegotiationManager)
that can be used to add the default exception resolvers.- Parameters:
exceptionResolvers
- a list to add exception resolvers to (initially an empty list)
extendHandlerExceptionResolvers
protected void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers)
Override this method to extend or modify the list ofHandlerExceptionResolvers
after it has been configured.This may be useful for example to allow default resolvers to be registered and then insert a custom one through this method.
- Parameters:
exceptionResolvers
- the list of configured resolvers to extend.- Since:
- 4.3
addDefaultHandlerExceptionResolvers
protected final void addDefaultHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers, ContentNegotiationManager mvcContentNegotiationManager)
A method available to subclasses for adding defaultHandlerExceptionResolvers
.Adds the following exception resolvers:
ExceptionHandlerExceptionResolver
for handling exceptions throughExceptionHandler
methods.ResponseStatusExceptionResolver
for exceptions annotated withResponseStatus
.DefaultHandlerExceptionResolver
for resolving known Spring exception types
createExceptionHandlerExceptionResolver
protected ExceptionHandlerExceptionResolver createExceptionHandlerExceptionResolver()
Protected method for plugging in a custom subclass ofExceptionHandlerExceptionResolver
.- Since:
- 4.3
mvcViewResolver
@Bean public ViewResolver mvcViewResolver(@Qualifier("mvcContentNegotiationManager") ContentNegotiationManager contentNegotiationManager)
Register aViewResolverComposite
that contains a chain of view resolvers to use for view resolution. By default this resolver is ordered at 0 unless content negotiation view resolution is used in which case the order is raised toOrdered.HIGHEST_PRECEDENCE
.If no other resolvers are configured,
ViewResolverComposite.resolveViewName(String, Locale)
returns null in order to allow other potentialViewResolver
beans to resolve views.- Since:
- 4.1
configureViewResolvers
protected void configureViewResolvers(ViewResolverRegistry registry)
Override this method to configure view resolution.- See Also:
ViewResolverRegistry
getCorsConfigurations
protected final Map<String,CorsConfiguration> getCorsConfigurations()
Return the registeredCorsConfiguration
objects, keyed by path pattern.- Since:
- 4.2
addCorsMappings
protected void addCorsMappings(CorsRegistry registry)
Override this method to configure cross origin requests processing.- Since:
- 4.2
- See Also:
CorsRegistry
mvcHandlerMappingIntrospector
@Bean @Lazy public HandlerMappingIntrospector mvcHandlerMappingIntrospector()