Polishing

This commit is contained in:
Juergen Hoeller 2016-08-18 10:28:31 +02:00
parent 8d7db8e450
commit 27f830f345
2 changed files with 33 additions and 40 deletions

View File

@ -438,7 +438,7 @@ public abstract class AbstractMessageBrokerConfiguration implements ApplicationC
catch (Throwable ex) { catch (Throwable ex) {
throw new BeanInitializationException("Could not find default validator class", ex); throw new BeanInitializationException("Could not find default validator class", ex);
} }
validator = (Validator) BeanUtils.instantiate(clazz); validator = (Validator) BeanUtils.instantiateClass(clazz);
} }
else { else {
validator = new Validator() { validator = new Validator() {

View File

@ -17,6 +17,7 @@
package org.springframework.web.servlet.config.annotation; package org.springframework.web.servlet.config.annotation;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
@ -233,6 +234,7 @@ public class WebMvcConfigurationSupport implements ApplicationContextAware, Serv
return this.servletContext; return this.servletContext;
} }
/** /**
* Return a {@link RequestMappingHandlerMapping} ordered at 0 for mapping * Return a {@link RequestMappingHandlerMapping} ordered at 0 for mapping
* requests to annotated controllers. * requests to annotated controllers.
@ -255,11 +257,13 @@ public class WebMvcConfigurationSupport implements ApplicationContextAware, Serv
if (configurer.isUseTrailingSlashMatch() != null) { if (configurer.isUseTrailingSlashMatch() != null) {
handlerMapping.setUseTrailingSlashMatch(configurer.isUseTrailingSlashMatch()); handlerMapping.setUseTrailingSlashMatch(configurer.isUseTrailingSlashMatch());
} }
if (configurer.getPathMatcher() != null) { UrlPathHelper pathHelper = configurer.getUrlPathHelper();
handlerMapping.setPathMatcher(configurer.getPathMatcher()); if (pathHelper != null) {
handlerMapping.setUrlPathHelper(pathHelper);
} }
if (configurer.getUrlPathHelper() != null) { PathMatcher pathMatcher = configurer.getPathMatcher();
handlerMapping.setUrlPathHelper(configurer.getUrlPathHelper()); if (pathMatcher != null) {
handlerMapping.setPathMatcher(pathMatcher);
} }
return handlerMapping; return handlerMapping;
@ -339,7 +343,7 @@ public class WebMvcConfigurationSupport implements ApplicationContextAware, Serv
} }
protected Map<String, MediaType> getDefaultMediaTypes() { protected Map<String, MediaType> getDefaultMediaTypes() {
Map<String, MediaType> map = new HashMap<String, MediaType>(); Map<String, MediaType> map = new HashMap<String, MediaType>(4);
if (romePresent) { if (romePresent) {
map.put("atom", MediaType.APPLICATION_ATOM_XML); map.put("atom", MediaType.APPLICATION_ATOM_XML);
map.put("rss", MediaType.valueOf("application/rss+xml")); map.put("rss", MediaType.valueOf("application/rss+xml"));
@ -487,18 +491,14 @@ public class WebMvcConfigurationSupport implements ApplicationContextAware, Serv
adapter.setCustomReturnValueHandlers(getReturnValueHandlers()); adapter.setCustomReturnValueHandlers(getReturnValueHandlers());
if (jackson2Present) { if (jackson2Present) {
List<RequestBodyAdvice> requestBodyAdvices = new ArrayList<RequestBodyAdvice>(); adapter.setRequestBodyAdvice(
requestBodyAdvices.add(new JsonViewRequestBodyAdvice()); Collections.<RequestBodyAdvice>singletonList(new JsonViewRequestBodyAdvice()));
adapter.setRequestBodyAdvice(requestBodyAdvices); adapter.setResponseBodyAdvice(
Collections.<ResponseBodyAdvice<?>>singletonList(new JsonViewResponseBodyAdvice()));
List<ResponseBodyAdvice<?>> responseBodyAdvices = new ArrayList<ResponseBodyAdvice<?>>();
responseBodyAdvices.add(new JsonViewResponseBodyAdvice());
adapter.setResponseBodyAdvice(responseBodyAdvices);
} }
AsyncSupportConfigurer configurer = new AsyncSupportConfigurer(); AsyncSupportConfigurer configurer = new AsyncSupportConfigurer();
configureAsyncSupport(configurer); configureAsyncSupport(configurer);
if (configurer.getTaskExecutor() != null) { if (configurer.getTaskExecutor() != null) {
adapter.setTaskExecutor(configurer.getTaskExecutor()); adapter.setTaskExecutor(configurer.getTaskExecutor());
} }
@ -531,6 +531,13 @@ public class WebMvcConfigurationSupport implements ApplicationContextAware, Serv
return initializer; return initializer;
} }
/**
* Override this method to provide a custom {@link MessageCodesResolver}.
*/
protected MessageCodesResolver getMessageCodesResolver() {
return null;
}
/** /**
* Override this method to configure asynchronous request processing options. * Override this method to configure asynchronous request processing options.
* @see AsyncSupportConfigurer * @see AsyncSupportConfigurer
@ -580,7 +587,7 @@ public class WebMvcConfigurationSupport implements ApplicationContextAware, Serv
catch (LinkageError ex) { catch (LinkageError ex) {
throw new BeanInitializationException("Could not load default validator class", ex); throw new BeanInitializationException("Could not load default validator class", ex);
} }
validator = (Validator) BeanUtils.instantiate(clazz); validator = (Validator) BeanUtils.instantiateClass(clazz);
} }
else { else {
validator = new NoOpValidator(); validator = new NoOpValidator();
@ -589,6 +596,13 @@ public class WebMvcConfigurationSupport implements ApplicationContextAware, Serv
return validator; return validator;
} }
/**
* Override this method to provide a custom {@link Validator}.
*/
protected Validator getValidator() {
return null;
}
/** /**
* Return a global {@link PathMatcher} instance for path matching * Return a global {@link PathMatcher} instance for path matching
* patterns in {@link HandlerMapping}s. * patterns in {@link HandlerMapping}s.
@ -615,26 +629,8 @@ public class WebMvcConfigurationSupport implements ApplicationContextAware, Serv
*/ */
@Bean @Bean
public UrlPathHelper mvcUrlPathHelper() { public UrlPathHelper mvcUrlPathHelper() {
if (getPathMatchConfigurer().getUrlPathHelper() != null) { UrlPathHelper pathHelper = getPathMatchConfigurer().getUrlPathHelper();
return getPathMatchConfigurer().getUrlPathHelper(); return (pathHelper != null ? pathHelper : new UrlPathHelper());
}
else {
return new UrlPathHelper();
}
}
/**
* Override this method to provide a custom {@link Validator}.
*/
protected Validator getValidator() {
return null;
}
/**
* Override this method to provide a custom {@link MessageCodesResolver}.
*/
protected MessageCodesResolver getMessageCodesResolver() {
return null;
} }
/** /**
@ -817,11 +813,9 @@ public class WebMvcConfigurationSupport implements ApplicationContextAware, Serv
public HandlerExceptionResolver handlerExceptionResolver() { public HandlerExceptionResolver handlerExceptionResolver() {
List<HandlerExceptionResolver> exceptionResolvers = new ArrayList<HandlerExceptionResolver>(); List<HandlerExceptionResolver> exceptionResolvers = new ArrayList<HandlerExceptionResolver>();
configureHandlerExceptionResolvers(exceptionResolvers); configureHandlerExceptionResolvers(exceptionResolvers);
if (exceptionResolvers.isEmpty()) { if (exceptionResolvers.isEmpty()) {
addDefaultHandlerExceptionResolvers(exceptionResolvers); addDefaultHandlerExceptionResolvers(exceptionResolvers);
} }
extendHandlerExceptionResolvers(exceptionResolvers); extendHandlerExceptionResolvers(exceptionResolvers);
HandlerExceptionResolverComposite composite = new HandlerExceptionResolverComposite(); HandlerExceptionResolverComposite composite = new HandlerExceptionResolverComposite();
composite.setOrder(0); composite.setOrder(0);
@ -871,9 +865,8 @@ public class WebMvcConfigurationSupport implements ApplicationContextAware, Serv
exceptionHandlerResolver.setCustomArgumentResolvers(getArgumentResolvers()); exceptionHandlerResolver.setCustomArgumentResolvers(getArgumentResolvers());
exceptionHandlerResolver.setCustomReturnValueHandlers(getReturnValueHandlers()); exceptionHandlerResolver.setCustomReturnValueHandlers(getReturnValueHandlers());
if (jackson2Present) { if (jackson2Present) {
List<ResponseBodyAdvice<?>> interceptors = new ArrayList<ResponseBodyAdvice<?>>(); exceptionHandlerResolver.setResponseBodyAdvice(
interceptors.add(new JsonViewResponseBodyAdvice()); Collections.<ResponseBodyAdvice<?>>singletonList(new JsonViewResponseBodyAdvice()));
exceptionHandlerResolver.setResponseBodyAdvice(interceptors);
} }
exceptionHandlerResolver.setApplicationContext(this.applicationContext); exceptionHandlerResolver.setApplicationContext(this.applicationContext);
exceptionHandlerResolver.afterPropertiesSet(); exceptionHandlerResolver.afterPropertiesSet();