|
1 | 1 | /*
|
2 |
| - * Copyright 2002-2015 the original author or authors. |
| 2 | + * Copyright 2002-2016 the original author or authors. |
3 | 3 | *
|
4 | 4 | * Licensed under the Apache License, Version 2.0 (the "License");
|
5 | 5 | * you may not use this file except in compliance with the License.
|
@@ -480,7 +480,7 @@ public RequestMappingHandlerAdapter requestMappingHandlerAdapter() {
|
480 | 480 | List<HandlerMethodReturnValueHandler> returnValueHandlers = new ArrayList<HandlerMethodReturnValueHandler>();
|
481 | 481 | addReturnValueHandlers(returnValueHandlers);
|
482 | 482 |
|
483 |
| - RequestMappingHandlerAdapter adapter = new RequestMappingHandlerAdapter(); |
| 483 | + RequestMappingHandlerAdapter adapter = createRequestMappingHandlerAdapter(); |
484 | 484 | adapter.setContentNegotiationManager(mvcContentNegotiationManager());
|
485 | 485 | adapter.setMessageConverters(getMessageConverters());
|
486 | 486 | adapter.setWebBindingInitializer(getConfigurableWebBindingInitializer());
|
@@ -512,6 +512,14 @@ public RequestMappingHandlerAdapter requestMappingHandlerAdapter() {
|
512 | 512 | return adapter;
|
513 | 513 | }
|
514 | 514 |
|
| 515 | + /** |
| 516 | + * Protected method for plugging in a custom sub-class of |
| 517 | + * {@link RequestMappingHandlerAdapter}. |
| 518 | + */ |
| 519 | + protected RequestMappingHandlerAdapter createRequestMappingHandlerAdapter() { |
| 520 | + return new RequestMappingHandlerAdapter(); |
| 521 | + } |
| 522 | + |
515 | 523 | /**
|
516 | 524 | * Return the {@link ConfigurableWebBindingInitializer} to use for
|
517 | 525 | * initializing all {@link WebDataBinder} instances.
|
@@ -810,25 +818,33 @@ protected void configureHandlerExceptionResolvers(List<HandlerExceptionResolver>
|
810 | 818 | * </ul>
|
811 | 819 | */
|
812 | 820 | protected final void addDefaultHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) {
|
813 |
| - ExceptionHandlerExceptionResolver exceptionHandlerExceptionResolver = new ExceptionHandlerExceptionResolver(); |
814 |
| - exceptionHandlerExceptionResolver.setContentNegotiationManager(mvcContentNegotiationManager()); |
815 |
| - exceptionHandlerExceptionResolver.setMessageConverters(getMessageConverters()); |
| 821 | + ExceptionHandlerExceptionResolver exceptionHandlerResolver = createExceptionHandlerExceptionResolver(); |
| 822 | + exceptionHandlerResolver.setContentNegotiationManager(mvcContentNegotiationManager()); |
| 823 | + exceptionHandlerResolver.setMessageConverters(getMessageConverters()); |
816 | 824 | if (jackson2Present) {
|
817 | 825 | List<ResponseBodyAdvice<?>> interceptors = new ArrayList<ResponseBodyAdvice<?>>();
|
818 | 826 | interceptors.add(new JsonViewResponseBodyAdvice());
|
819 |
| - exceptionHandlerExceptionResolver.setResponseBodyAdvice(interceptors); |
| 827 | + exceptionHandlerResolver.setResponseBodyAdvice(interceptors); |
820 | 828 | }
|
821 |
| - exceptionHandlerExceptionResolver.setApplicationContext(this.applicationContext); |
822 |
| - exceptionHandlerExceptionResolver.afterPropertiesSet(); |
823 |
| - exceptionResolvers.add(exceptionHandlerExceptionResolver); |
| 829 | + exceptionHandlerResolver.setApplicationContext(this.applicationContext); |
| 830 | + exceptionHandlerResolver.afterPropertiesSet(); |
| 831 | + exceptionResolvers.add(exceptionHandlerResolver); |
824 | 832 |
|
825 |
| - ResponseStatusExceptionResolver responseStatusExceptionResolver = new ResponseStatusExceptionResolver(); |
826 |
| - responseStatusExceptionResolver.setMessageSource(this.applicationContext); |
827 |
| - exceptionResolvers.add(responseStatusExceptionResolver); |
| 833 | + ResponseStatusExceptionResolver responseStatusResolver = new ResponseStatusExceptionResolver(); |
| 834 | + responseStatusResolver.setMessageSource(this.applicationContext); |
| 835 | + exceptionResolvers.add(responseStatusResolver); |
828 | 836 |
|
829 | 837 | exceptionResolvers.add(new DefaultHandlerExceptionResolver());
|
830 | 838 | }
|
831 | 839 |
|
| 840 | + /** |
| 841 | + * Protected method for plugging in a custom sub-class of |
| 842 | + * {@link ExceptionHandlerExceptionResolver}. |
| 843 | + */ |
| 844 | + protected ExceptionHandlerExceptionResolver createExceptionHandlerExceptionResolver() { |
| 845 | + return new ExceptionHandlerExceptionResolver(); |
| 846 | + } |
| 847 | + |
832 | 848 | /**
|
833 | 849 | * Register a {@link ViewResolverComposite} that contains a chain of view resolvers
|
834 | 850 | * to use for view resolution.
|
|
0 commit comments